/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 星盾安全加速API接口
 * 星盾安全加速API接口
 *
 * OpenAPI spec version: v1
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using JDCloudSDK.Core.Auth;
using JDCloudSDK.Core.Client;
using JDCloudSDK.Core.Http;
using JDCloudSDK.Starshield.Apis;
using JDCloudSDK.Starshield.Model;
using System;
using System.Collections.Generic;
using System.Text;
#if NET40||NET35
#else
using System.Threading.Tasks;
#endif

namespace JDCloudSDK.Starshield.Client
{
    /// <summary>
    ///  星盾安全加速API接口
    ///  星盾安全加速API接口
    ///  Starshield Api 客户端
    ///</summary>
    public class StarshieldClient : JdcloudClient
    {

        /// <summary>
        ///  默认私有构造函数
        /// </summary>
        private StarshieldClient()
        {

        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="environment">sdk 环境配置信息</param>
        public StarshieldClient(CredentialsProvider credentialsProvider, HttpRequestConfig httpRequestConfig,SDKEnvironment environment)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
            this.environment = environment;
        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="credentialsProvider">认证信息</param>
        public StarshieldClient(CredentialsProvider credentialsProvider,HttpRequestConfig httpRequestConfig)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        /// 默认构造函数，
        /// 注意如果使用此方法 httpRequestConfig 使用的http 请求 schema 为Https
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        public StarshieldClient(CredentialsProvider credentialsProvider)
        {
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        ///  版本号 1.2.8
        ///</summary>
        public const string ClientVersion = "1.2.8";

        private const string apiVersion = "v1";
        private const string userAgentPrefix = "JdcloudSdkDotNet";
        private const string defaultEndpoint = "starshield.jdcloud-api.com";
        private const string serviceName = "starshield";
        private const string userAgent = userAgentPrefix + "/" + ClientVersion + " " + serviceName + "/" + apiVersion;


        private SDKEnvironment environment = new SDKEnvironment(defaultEndpoint);
        private CredentialsProvider credentialsProvider;
        private HttpRequestConfig httpRequestConfig;

        /// <summary>
        ///  获取证书信息
        ///</summary>
        public override CredentialsProvider CredentialsProvider   { get { return credentialsProvider; } }

        /// <summary>
        ///  获取http 客户端配置信息
        ///</summary>
        public override HttpRequestConfig HttpRequestConfig { get { return httpRequestConfig; } }

        /// <summary>
        ///  获取sdk环境配置信息
        ///</summary>
        public override SDKEnvironment SDKEnvironment { get { return environment; } }

        /// <summary>
        ///  获取用户自定义浏览器识别字符串
        ///</summary>
        public override string UserAgent { get { return userAgent; } }

        /// <summary>
        ///  获取服务名称
        ///</summary>
        public override string ServiceName { get { return serviceName; } }

        /// <summary>
        ///  获取版本号
        ///</summary>
        public override string Version { get { return apiVersion; } }



#if NET40||NET35
        /// <summary>
        ///  剥离元数据并压缩你的图像，以加快页面加载时间。
        /// Basic（无损），减少PNG、JPEG和GIF文件的大小 - 对视觉质量没有影响。
        /// Basic+JPEG（有损），进一步减少JPEG文件的大小，以加快图像加载。
        /// 较大的JPEG文件被转换为渐进式图像，首先加载较低分辨率的图像，最后是较高的分辨率版本。
        /// 不建议用于高像素的摄影网站。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetPolishSettingResponse GetPolishSetting(GetPolishSettingRequest request) {
            return  new GetPolishSettingExecutor().Client(this).Execute<GetPolishSettingResponse, GetPolishSettingResult, GetPolishSettingRequest>(request);
        }
#else
        /// <summary>
        ///  剥离元数据并压缩你的图像，以加快页面加载时间。
        /// Basic（无损），减少PNG、JPEG和GIF文件的大小 - 对视觉质量没有影响。
        /// Basic+JPEG（有损），进一步减少JPEG文件的大小，以加快图像加载。
        /// 较大的JPEG文件被转换为渐进式图像，首先加载较低分辨率的图像，最后是较高的分辨率版本。
        /// 不建议用于高像素的摄影网站。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetPolishSettingResponse> GetPolishSetting(GetPolishSettingRequest request) {
            return await new GetPolishSettingExecutor().Client(this).Execute<GetPolishSettingResponse, GetPolishSettingResult, GetPolishSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  如果你需要对你的网站进行修改，开发模式可以让你暂时进入网站的开发模式。这将绕过星盾的加速缓存，并降低您的网站速度。
        /// 但如果您正在对可缓存的内容（如图片、css 或 JavaScript）进行更改，并希望立即看到这些更改，这时就很有用。一旦进入，开发模式将持续3小时，然后自动切换关闭。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetDevelopmentModeSettingResponse GetDevelopmentModeSetting(GetDevelopmentModeSettingRequest request) {
            return  new GetDevelopmentModeSettingExecutor().Client(this).Execute<GetDevelopmentModeSettingResponse, GetDevelopmentModeSettingResult, GetDevelopmentModeSettingRequest>(request);
        }
#else
        /// <summary>
        ///  如果你需要对你的网站进行修改，开发模式可以让你暂时进入网站的开发模式。这将绕过星盾的加速缓存，并降低您的网站速度。
        /// 但如果您正在对可缓存的内容（如图片、css 或 JavaScript）进行更改，并希望立即看到这些更改，这时就很有用。一旦进入，开发模式将持续3小时，然后自动切换关闭。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetDevelopmentModeSettingResponse> GetDevelopmentModeSetting(GetDevelopmentModeSettingRequest request) {
            return await new GetDevelopmentModeSettingExecutor().Client(this).Execute<GetDevelopmentModeSettingResponse, GetDevelopmentModeSettingResult, GetDevelopmentModeSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  WebSockets是客户端和源服务器之间持续的开放连接。在WebSockets连接中，客户端和源服务器可以来回传递数据，而不需要重新建立会话。
        /// 这使得在WebSockets连接中的数据交换非常快。WebSockets经常被用于实时应用，如即时聊天和游戏。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetWebSocketsSettingResponse GetWebSocketsSetting(GetWebSocketsSettingRequest request) {
            return  new GetWebSocketsSettingExecutor().Client(this).Execute<GetWebSocketsSettingResponse, GetWebSocketsSettingResult, GetWebSocketsSettingRequest>(request);
        }
#else
        /// <summary>
        ///  WebSockets是客户端和源服务器之间持续的开放连接。在WebSockets连接中，客户端和源服务器可以来回传递数据，而不需要重新建立会话。
        /// 这使得在WebSockets连接中的数据交换非常快。WebSockets经常被用于实时应用，如即时聊天和游戏。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetWebSocketsSettingResponse> GetWebSocketsSetting(GetWebSocketsSettingRequest request) {
            return await new GetWebSocketsSettingExecutor().Client(this).Execute<GetWebSocketsSettingResponse, GetWebSocketsSettingResult, GetWebSocketsSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  星盾将代理源服务器上任何 502、504 错误的客户错误页面，而不是显示默认的星盾错误页面。这不适用于 522 错误，并且仅限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeEnableErrorPagesOnSettingResponse ChangeEnableErrorPagesOnSetting(ChangeEnableErrorPagesOnSettingRequest request) {
            return  new ChangeEnableErrorPagesOnSettingExecutor().Client(this).Execute<ChangeEnableErrorPagesOnSettingResponse, ChangeEnableErrorPagesOnSettingResult, ChangeEnableErrorPagesOnSettingRequest>(request);
        }
#else
        /// <summary>
        ///  星盾将代理源服务器上任何 502、504 错误的客户错误页面，而不是显示默认的星盾错误页面。这不适用于 522 错误，并且仅限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeEnableErrorPagesOnSettingResponse> ChangeEnableErrorPagesOnSetting(ChangeEnableErrorPagesOnSettingRequest request) {
            return await new ChangeEnableErrorPagesOnSettingExecutor().Client(this).Execute<ChangeEnableErrorPagesOnSettingResponse, ChangeEnableErrorPagesOnSettingResult, ChangeEnableErrorPagesOnSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  批量更新域的设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public EditZoneSettingsInfoResponse EditZoneSettingsInfo(EditZoneSettingsInfoRequest request) {
            return  new EditZoneSettingsInfoExecutor().Client(this).Execute<EditZoneSettingsInfoResponse, EditZoneSettingsInfoResult, EditZoneSettingsInfoRequest>(request);
        }
#else
        /// <summary>
        ///  批量更新域的设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<EditZoneSettingsInfoResponse> EditZoneSettingsInfo(EditZoneSettingsInfoRequest request) {
            return await new EditZoneSettingsInfoExecutor().Client(this).Execute<EditZoneSettingsInfoResponse, EditZoneSettingsInfoResult, EditZoneSettingsInfoRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  启用后，热链路保护选项可确保其他网站无法通过建立使用您网站上托管的图像的页面来占用您的带宽。只要您的网站上的图像请求被星盾选中，我们就会检查以确保这不是其他网站在请求它们。
        /// 人们仍然能够从你的网页上下载和查看图像，但其他网站将无法窃取它们用于自己的网页。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeHotlinkProtectionSettingResponse ChangeHotlinkProtectionSetting(ChangeHotlinkProtectionSettingRequest request) {
            return  new ChangeHotlinkProtectionSettingExecutor().Client(this).Execute<ChangeHotlinkProtectionSettingResponse, ChangeHotlinkProtectionSettingResult, ChangeHotlinkProtectionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  启用后，热链路保护选项可确保其他网站无法通过建立使用您网站上托管的图像的页面来占用您的带宽。只要您的网站上的图像请求被星盾选中，我们就会检查以确保这不是其他网站在请求它们。
        /// 人们仍然能够从你的网页上下载和查看图像，但其他网站将无法窃取它们用于自己的网页。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeHotlinkProtectionSettingResponse> ChangeHotlinkProtectionSetting(ChangeHotlinkProtectionSettingRequest request) {
            return await new ChangeHotlinkProtectionSettingExecutor().Client(this).Execute<ChangeHotlinkProtectionSettingResponse, ChangeHotlinkProtectionSettingResult, ChangeHotlinkProtectionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建套餐实例
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateInstanceResponse CreateInstance(CreateInstanceRequest request) {
            return  new CreateInstanceExecutor().Client(this).Execute<CreateInstanceResponse, CreateInstanceResult, CreateInstanceRequest>(request);
        }
#else
        /// <summary>
        ///  创建套餐实例
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateInstanceResponse> CreateInstance(CreateInstanceRequest request) {
            return await new CreateInstanceExecutor().Client(this).Execute<CreateInstanceResponse, CreateInstanceResult, CreateInstanceRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取你的网站自动最小化资产的配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetMinifySettingResponse GetMinifySetting(GetMinifySettingRequest request) {
            return  new GetMinifySettingExecutor().Client(this).Execute<GetMinifySettingResponse, GetMinifySettingResult, GetMinifySettingRequest>(request);
        }
#else
        /// <summary>
        ///  获取你的网站自动最小化资产的配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetMinifySettingResponse> GetMinifySetting(GetMinifySettingRequest request) {
            return await new GetMinifySettingExecutor().Client(this).Execute<GetMinifySettingResponse, GetMinifySettingResult, GetMinifySettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  星盾将把具有相同查询字符串的文件视为缓存中的同一个文件，而不管查询字符串的顺序如何。这只限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeEnableQueryStringSortSettingResponse ChangeEnableQueryStringSortSetting(ChangeEnableQueryStringSortSettingRequest request) {
            return  new ChangeEnableQueryStringSortSettingExecutor().Client(this).Execute<ChangeEnableQueryStringSortSettingResponse, ChangeEnableQueryStringSortSettingResult, ChangeEnableQueryStringSortSettingRequest>(request);
        }
#else
        /// <summary>
        ///  星盾将把具有相同查询字符串的文件视为缓存中的同一个文件，而不管查询字符串的顺序如何。这只限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeEnableQueryStringSortSettingResponse> ChangeEnableQueryStringSortSetting(ChangeEnableQueryStringSortSettingRequest request) {
            return await new ChangeEnableQueryStringSortSettingExecutor().Client(this).Execute<ChangeEnableQueryStringSortSettingResponse, ChangeEnableQueryStringSortSettingResult, ChangeEnableQueryStringSortSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  浏览器完整性检查与不良行为检查类似，寻找最常被垃圾邮件发送者滥用的常见HTTP头，并拒绝他们访问您的页面。它还会对没有用户代理或非标准用户代理（也是滥用机器人、爬虫或访客常用的）的访客提出挑战质询。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetBrowserCheckSettingResponse GetBrowserCheckSetting(GetBrowserCheckSettingRequest request) {
            return  new GetBrowserCheckSettingExecutor().Client(this).Execute<GetBrowserCheckSettingResponse, GetBrowserCheckSettingResult, GetBrowserCheckSettingRequest>(request);
        }
#else
        /// <summary>
        ///  浏览器完整性检查与不良行为检查类似，寻找最常被垃圾邮件发送者滥用的常见HTTP头，并拒绝他们访问您的页面。它还会对没有用户代理或非标准用户代理（也是滥用机器人、爬虫或访客常用的）的访客提出挑战质询。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetBrowserCheckSettingResponse> GetBrowserCheckSetting(GetBrowserCheckSettingRequest request) {
            return await new GetBrowserCheckSettingExecutor().Client(this).Execute<GetBrowserCheckSettingResponse, GetBrowserCheckSettingResult, GetBrowserCheckSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  对于给定域，列出所有激活的证书包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListCertificatePacksResponse ListCertificatePacks(ListCertificatePacksRequest request) {
            return  new ListCertificatePacksExecutor().Client(this).Execute<ListCertificatePacksResponse, ListCertificatePacksResult, ListCertificatePacksRequest>(request);
        }
#else
        /// <summary>
        ///  对于给定域，列出所有激活的证书包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListCertificatePacksResponse> ListCertificatePacks(ListCertificatePacksRequest request) {
            return await new ListCertificatePacksExecutor().Client(this).Execute<ListCertificatePacksResponse, ListCertificatePacksResult, ListCertificatePacksRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  浏览器缓存TTL（以秒为单位）指定星盾缓存资源将在访问者的计算机上保留多长时间。星盾将遵守服务器指定的任何更长时间。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetBrowserCacheTTLSettingResponse GetBrowserCacheTTLSetting(GetBrowserCacheTTLSettingRequest request) {
            return  new GetBrowserCacheTTLSettingExecutor().Client(this).Execute<GetBrowserCacheTTLSettingResponse, GetBrowserCacheTTLSettingResult, GetBrowserCacheTTLSettingRequest>(request);
        }
#else
        /// <summary>
        ///  浏览器缓存TTL（以秒为单位）指定星盾缓存资源将在访问者的计算机上保留多长时间。星盾将遵守服务器指定的任何更长时间。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetBrowserCacheTTLSettingResponse> GetBrowserCacheTTLSetting(GetBrowserCacheTTLSettingRequest request) {
            return await new GetBrowserCacheTTLSettingExecutor().Client(this).Execute<GetBrowserCacheTTLSettingResponse, GetBrowserCacheTTLSettingResult, GetBrowserCacheTTLSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除存在的域名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteZoneResponse DeleteZone(DeleteZoneRequest request) {
            return  new DeleteZoneExecutor().Client(this).Execute<DeleteZoneResponse, DeleteZoneResult, DeleteZoneRequest>(request);
        }
#else
        /// <summary>
        ///  删除存在的域名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteZoneResponse> DeleteZone(DeleteZoneRequest request) {
            return await new DeleteZoneExecutor().Client(this).Execute<DeleteZoneResponse, DeleteZoneResult, DeleteZoneRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  星盾将预取包含在响应标头中的任何 URL。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetPrefetchPreloadSettingResponse GetPrefetchPreloadSetting(GetPrefetchPreloadSettingRequest request) {
            return  new GetPrefetchPreloadSettingExecutor().Client(this).Execute<GetPrefetchPreloadSettingResponse, GetPrefetchPreloadSettingResult, GetPrefetchPreloadSettingRequest>(request);
        }
#else
        /// <summary>
        ///  星盾将预取包含在响应标头中的任何 URL。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetPrefetchPreloadSettingResponse> GetPrefetchPreloadSetting(GetPrefetchPreloadSettingRequest request) {
            return await new GetPrefetchPreloadSettingExecutor().Client(this).Execute<GetPrefetchPreloadSettingResponse, GetPrefetchPreloadSettingResult, GetPrefetchPreloadSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建新过滤器
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateFiltersResponse CreateFilters(CreateFiltersRequest request) {
            return  new CreateFiltersExecutor().Client(this).Execute<CreateFiltersResponse, CreateFiltersResult, CreateFiltersRequest>(request);
        }
#else
        /// <summary>
        ///  创建新过滤器
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateFiltersResponse> CreateFilters(CreateFiltersRequest request) {
            return await new CreateFiltersExecutor().Client(this).Execute<CreateFiltersResponse, CreateFiltersResult, CreateFiltersRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  图像调整为通过星盾的网络提供的图像提供按需调整、转换和优化。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetImageResizingSettingResponse GetImageResizingSetting(GetImageResizingSettingRequest request) {
            return  new GetImageResizingSettingExecutor().Client(this).Execute<GetImageResizingSettingResponse, GetImageResizingSettingResult, GetImageResizingSettingRequest>(request);
        }
#else
        /// <summary>
        ///  图像调整为通过星盾的网络提供的图像提供按需调整、转换和优化。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetImageResizingSettingResponse> GetImageResizingSetting(GetImageResizingSettingRequest request) {
            return await new GetImageResizingSettingExecutor().Client(this).Execute<GetImageResizingSettingResponse, GetImageResizingSettingResult, GetImageResizingSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  如果你需要对你的网站进行修改，开发模式可以让你暂时进入网站的开发模式。这将绕过星盾的加速缓存，并降低您的网站速度。
        /// 但如果您正在对可缓存的内容（如图片、css 或 JavaScript）进行更改，并希望立即看到这些更改，这时就很有用。一旦进入，开发模式将持续3小时，然后自动切换关闭。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeDevelopmentModeSettingResponse ChangeDevelopmentModeSetting(ChangeDevelopmentModeSettingRequest request) {
            return  new ChangeDevelopmentModeSettingExecutor().Client(this).Execute<ChangeDevelopmentModeSettingResponse, ChangeDevelopmentModeSettingResult, ChangeDevelopmentModeSettingRequest>(request);
        }
#else
        /// <summary>
        ///  如果你需要对你的网站进行修改，开发模式可以让你暂时进入网站的开发模式。这将绕过星盾的加速缓存，并降低您的网站速度。
        /// 但如果您正在对可缓存的内容（如图片、css 或 JavaScript）进行更改，并希望立即看到这些更改，这时就很有用。一旦进入，开发模式将持续3小时，然后自动切换关闭。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeDevelopmentModeSettingResponse> ChangeDevelopmentModeSetting(ChangeDevelopmentModeSettingRequest request) {
            return await new ChangeDevelopmentModeSettingExecutor().Client(this).Execute<ChangeDevelopmentModeSettingResponse, ChangeDevelopmentModeSettingResult, ChangeDevelopmentModeSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  根据订单号查询套餐实例详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeInstanceByOrderNoResponse DescribeInstanceByOrderNo(DescribeInstanceByOrderNoRequest request) {
            return  new DescribeInstanceByOrderNoExecutor().Client(this).Execute<DescribeInstanceByOrderNoResponse, DescribeInstanceByOrderNoResult, DescribeInstanceByOrderNoRequest>(request);
        }
#else
        /// <summary>
        ///  根据订单号查询套餐实例详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeInstanceByOrderNoResponse> DescribeInstanceByOrderNo(DescribeInstanceByOrderNoRequest request) {
            return await new DescribeInstanceByOrderNoExecutor().Client(this).Execute<DescribeInstanceByOrderNoResponse, DescribeInstanceByOrderNoResult, DescribeInstanceByOrderNoRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  缓存级别的功能是基于设置的级别。
        /// basic设置将缓存大多数静态资源（即css、图片和JavaScript）。
        /// simplified设置将在提供缓存的资源时忽略查询字符串。
        /// aggressive设置将缓存所有的静态资源，包括有查询字符串的资源。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeCacheLevelSettingResponse ChangeCacheLevelSetting(ChangeCacheLevelSettingRequest request) {
            return  new ChangeCacheLevelSettingExecutor().Client(this).Execute<ChangeCacheLevelSettingResponse, ChangeCacheLevelSettingResult, ChangeCacheLevelSettingRequest>(request);
        }
#else
        /// <summary>
        ///  缓存级别的功能是基于设置的级别。
        /// basic设置将缓存大多数静态资源（即css、图片和JavaScript）。
        /// simplified设置将在提供缓存的资源时忽略查询字符串。
        /// aggressive设置将缓存所有的静态资源，包括有查询字符串的资源。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeCacheLevelSettingResponse> ChangeCacheLevelSetting(ChangeCacheLevelSettingRequest request) {
            return await new ChangeCacheLevelSettingExecutor().Client(this).Execute<ChangeCacheLevelSettingResponse, ChangeCacheLevelSettingResult, ChangeCacheLevelSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取当前Always Online的配置。当Always Online开启时，在你的源站离线期间，星盾会提供已缓存过的页面。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetAlwaysOnlineSettingResponse GetAlwaysOnlineSetting(GetAlwaysOnlineSettingRequest request) {
            return  new GetAlwaysOnlineSettingExecutor().Client(this).Execute<GetAlwaysOnlineSettingResponse, GetAlwaysOnlineSettingResult, GetAlwaysOnlineSettingRequest>(request);
        }
#else
        /// <summary>
        ///  获取当前Always Online的配置。当Always Online开启时，在你的源站离线期间，星盾会提供已缓存过的页面。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetAlwaysOnlineSettingResponse> GetAlwaysOnlineSetting(GetAlwaysOnlineSettingRequest request) {
            return await new GetAlwaysOnlineSettingExecutor().Client(this).Execute<GetAlwaysOnlineSettingResponse, GetAlwaysOnlineSettingResult, GetAlwaysOnlineSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新一个现有的筛选器。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateIndividualFilterResponse UpdateIndividualFilter(UpdateIndividualFilterRequest request) {
            return  new UpdateIndividualFilterExecutor().Client(this).Execute<UpdateIndividualFilterResponse, UpdateIndividualFilterResult, UpdateIndividualFilterRequest>(request);
        }
#else
        /// <summary>
        ///  更新一个现有的筛选器。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateIndividualFilterResponse> UpdateIndividualFilter(UpdateIndividualFilterRequest request) {
            return await new UpdateIndividualFilterExecutor().Client(this).Execute<UpdateIndividualFilterResponse, UpdateIndividualFilterResult, UpdateIndividualFilterRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为当前域启用随机加密
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeOpportunisticEncryptionSettingResponse ChangeOpportunisticEncryptionSetting(ChangeOpportunisticEncryptionSettingRequest request) {
            return  new ChangeOpportunisticEncryptionSettingExecutor().Client(this).Execute<ChangeOpportunisticEncryptionSettingResponse, ChangeOpportunisticEncryptionSettingResult, ChangeOpportunisticEncryptionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  为当前域启用随机加密
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeOpportunisticEncryptionSettingResponse> ChangeOpportunisticEncryptionSetting(ChangeOpportunisticEncryptionSettingRequest request) {
            return await new ChangeOpportunisticEncryptionSettingExecutor().Client(this).Execute<ChangeOpportunisticEncryptionSettingResponse, ChangeOpportunisticEncryptionSettingResult, ChangeOpportunisticEncryptionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  WAF检查对您网站的HTTP请求。它检查GET和POST请求，并应用规则来帮助从合法的网站访问者中过滤出非法流量。星盾 WAF 检查网站地址或 URL 以检测任何不正常的东西。
        /// 如果星盾 WAF确定了可疑的用户行为。那么 WAF 将用一个页面 &quot;挑战 &quot;网络访客，要求他们成功提交验证码以继续其行动。
        /// 如果挑战失败，行动将被停止。这意味着 星盾 的 WAF 将在任何被识别为非法的流量到达您的源网络服务器之前将其阻止。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetWebApplicationFirewallWAFSettingResponse GetWebApplicationFirewallWAFSetting(GetWebApplicationFirewallWAFSettingRequest request) {
            return  new GetWebApplicationFirewallWAFSettingExecutor().Client(this).Execute<GetWebApplicationFirewallWAFSettingResponse, GetWebApplicationFirewallWAFSettingResult, GetWebApplicationFirewallWAFSettingRequest>(request);
        }
#else
        /// <summary>
        ///  WAF检查对您网站的HTTP请求。它检查GET和POST请求，并应用规则来帮助从合法的网站访问者中过滤出非法流量。星盾 WAF 检查网站地址或 URL 以检测任何不正常的东西。
        /// 如果星盾 WAF确定了可疑的用户行为。那么 WAF 将用一个页面 &quot;挑战 &quot;网络访客，要求他们成功提交验证码以继续其行动。
        /// 如果挑战失败，行动将被停止。这意味着 星盾 的 WAF 将在任何被识别为非法的流量到达您的源网络服务器之前将其阻止。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetWebApplicationFirewallWAFSettingResponse> GetWebApplicationFirewallWAFSetting(GetWebApplicationFirewallWAFSettingRequest request) {
            return await new GetWebApplicationFirewallWAFSettingExecutor().Client(this).Execute<GetWebApplicationFirewallWAFSettingResponse, GetWebApplicationFirewallWAFSettingResult, GetWebApplicationFirewallWAFSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  通过指定URL，从星盾的缓存中细化删除一个或多个文件。
        /// 要清除带有自定义缓存key的文件，请包括用于计算缓存key的报头。
        /// 例如要清除缓存key中含有${geo}或${devicetype}的文件，请包括CF-Device-Type或CF-IPCountry报头。
        /// 注意：当包含源报头时，请确保包括scheme协议和hostname主机名。如果是默认端口，可以省略端口号（http为80，https为443），否则必须包含端口号。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public PurgeFilesByURLResponse PurgeFilesByURL(PurgeFilesByURLRequest request) {
            return  new PurgeFilesByURLExecutor().Client(this).Execute<PurgeFilesByURLResponse, PurgeFilesByURLResult, PurgeFilesByURLRequest>(request);
        }
#else
        /// <summary>
        ///  通过指定URL，从星盾的缓存中细化删除一个或多个文件。
        /// 要清除带有自定义缓存key的文件，请包括用于计算缓存key的报头。
        /// 例如要清除缓存key中含有${geo}或${devicetype}的文件，请包括CF-Device-Type或CF-IPCountry报头。
        /// 注意：当包含源报头时，请确保包括scheme协议和hostname主机名。如果是默认端口，可以省略端口号（http为80，https为443），否则必须包含端口号。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<PurgeFilesByURLResponse> PurgeFilesByURL(PurgeFilesByURLRequest request) {
            return await new PurgeFilesByURLExecutor().Client(this).Execute<PurgeFilesByURLResponse, PurgeFilesByURLResult, PurgeFilesByURLRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  HTTP/2边缘优化，优化了通过HTTP/2提供的资源交付，提高了页面加载性能。当与Worker结合使用时，它还支持对内容交付的精细控制。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetHTTP2EdgePrioritizationSettingResponse GetHTTP2EdgePrioritizationSetting(GetHTTP2EdgePrioritizationSettingRequest request) {
            return  new GetHTTP2EdgePrioritizationSettingExecutor().Client(this).Execute<GetHTTP2EdgePrioritizationSettingResponse, GetHTTP2EdgePrioritizationSettingResult, GetHTTP2EdgePrioritizationSettingRequest>(request);
        }
#else
        /// <summary>
        ///  HTTP/2边缘优化，优化了通过HTTP/2提供的资源交付，提高了页面加载性能。当与Worker结合使用时，它还支持对内容交付的精细控制。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetHTTP2EdgePrioritizationSettingResponse> GetHTTP2EdgePrioritizationSetting(GetHTTP2EdgePrioritizationSettingRequest request) {
            return await new GetHTTP2EdgePrioritizationSettingExecutor().Client(this).Execute<GetHTTP2EdgePrioritizationSettingResponse, GetHTTP2EdgePrioritizationSettingResult, GetHTTP2EdgePrioritizationSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  升级套餐实例
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifyInstanceResponse ModifyInstance(ModifyInstanceRequest request) {
            return  new ModifyInstanceExecutor().Client(this).Execute<ModifyInstanceResponse, ModifyInstanceResult, ModifyInstanceRequest>(request);
        }
#else
        /// <summary>
        ///  升级套餐实例
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifyInstanceResponse> ModifyInstance(ModifyInstanceRequest request) {
            return await new ModifyInstanceExecutor().Client(this).Execute<ModifyInstanceResponse, ModifyInstanceResult, ModifyInstanceRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  列出、搜索和筛选所有自定义SSL证书。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListSSLConfigurationsResponse ListSSLConfigurations(ListSSLConfigurationsRequest request) {
            return  new ListSSLConfigurationsExecutor().Client(this).Execute<ListSSLConfigurationsResponse, ListSSLConfigurationsResult, ListSSLConfigurationsRequest>(request);
        }
#else
        /// <summary>
        ///  列出、搜索和筛选所有自定义SSL证书。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListSSLConfigurationsResponse> ListSSLConfigurations(ListSSLConfigurationsRequest request) {
            return await new ListSSLConfigurationsExecutor().Client(this).Execute<ListSSLConfigurationsResponse, ListSSLConfigurationsResult, ListSSLConfigurationsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  列出、搜索、排序和筛选您的域
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListZonesResponse ListZones(ListZonesRequest request) {
            return  new ListZonesExecutor().Client(this).Execute<ListZonesResponse, ListZonesResult, ListZonesRequest>(request);
        }
#else
        /// <summary>
        ///  列出、搜索、排序和筛选您的域
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListZonesResponse> ListZones(ListZonesRequest request) {
            return await new ListZonesExecutor().Client(this).Execute<ListZonesResponse, ListZonesResult, ListZonesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为你的网站自动最小化某些资产
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeMinifySettingResponse ChangeMinifySetting(ChangeMinifySettingRequest request) {
            return  new ChangeMinifySettingExecutor().Client(this).Execute<ChangeMinifySettingResponse, ChangeMinifySettingResult, ChangeMinifySettingRequest>(request);
        }
#else
        /// <summary>
        ///  为你的网站自动最小化某些资产
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeMinifySettingResponse> ChangeMinifySetting(ChangeMinifySettingRequest request) {
            return await new ChangeMinifySettingExecutor().Client(this).Execute<ChangeMinifySettingResponse, ChangeMinifySettingResult, ChangeMinifySettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  检查实例名称
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckInstancesNameResponse CheckInstancesName(CheckInstancesNameRequest request) {
            return  new CheckInstancesNameExecutor().Client(this).Execute<CheckInstancesNameResponse, CheckInstancesNameResult, CheckInstancesNameRequest>(request);
        }
#else
        /// <summary>
        ///  检查实例名称
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckInstancesNameResponse> CheckInstancesName(CheckInstancesNameRequest request) {
            return await new CheckInstancesNameExecutor().Client(this).Execute<CheckInstancesNameResponse, CheckInstancesNameResult, CheckInstancesNameRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  指定访问者在成功完成一项挑战（如验证码）后允许访问您的网站多长时间。在TTL过期后，访问者将不得不完成新的挑战。我们建议设置为15-45分钟，并将尝试遵守任何超过45分钟的设置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeChallengeTTLSettingResponse ChangeChallengeTTLSetting(ChangeChallengeTTLSettingRequest request) {
            return  new ChangeChallengeTTLSettingExecutor().Client(this).Execute<ChangeChallengeTTLSettingResponse, ChangeChallengeTTLSettingResult, ChangeChallengeTTLSettingRequest>(request);
        }
#else
        /// <summary>
        ///  指定访问者在成功完成一项挑战（如验证码）后允许访问您的网站多长时间。在TTL过期后，访问者将不得不完成新的挑战。我们建议设置为15-45分钟，并将尝试遵守任何超过45分钟的设置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeChallengeTTLSettingResponse> ChangeChallengeTTLSetting(ChangeChallengeTTLSettingRequest request) {
            return await new ChangeChallengeTTLSettingExecutor().Client(this).Execute<ChangeChallengeTTLSettingResponse, ChangeChallengeTTLSettingResult, ChangeChallengeTTLSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  浏览器缓存TTL（以秒为单位）指定星盾缓存资源将在访问者的计算机上保留多长时间。星盾将遵守服务器指定的任何更长时间。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeBrowserCacheTTLSettingResponse ChangeBrowserCacheTTLSetting(ChangeBrowserCacheTTLSettingRequest request) {
            return  new ChangeBrowserCacheTTLSettingExecutor().Client(this).Execute<ChangeBrowserCacheTTLSettingResponse, ChangeBrowserCacheTTLSettingResult, ChangeBrowserCacheTTLSettingRequest>(request);
        }
#else
        /// <summary>
        ///  浏览器缓存TTL（以秒为单位）指定星盾缓存资源将在访问者的计算机上保留多长时间。星盾将遵守服务器指定的任何更长时间。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeBrowserCacheTTLSettingResponse> ChangeBrowserCacheTTLSetting(ChangeBrowserCacheTTLSettingRequest request) {
            return await new ChangeBrowserCacheTTLSettingExecutor().Client(this).Execute<ChangeBrowserCacheTTLSettingResponse, ChangeBrowserCacheTTLSettingResult, ChangeBrowserCacheTTLSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  星盾将预取包含在响应标头中的任何 URL。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangePrefetchPreloadSettingResponse ChangePrefetchPreloadSetting(ChangePrefetchPreloadSettingRequest request) {
            return  new ChangePrefetchPreloadSettingExecutor().Client(this).Execute<ChangePrefetchPreloadSettingResponse, ChangePrefetchPreloadSettingResult, ChangePrefetchPreloadSettingRequest>(request);
        }
#else
        /// <summary>
        ///  星盾将预取包含在响应标头中的任何 URL。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangePrefetchPreloadSettingResponse> ChangePrefetchPreloadSetting(ChangePrefetchPreloadSettingRequest request) {
            return await new ChangePrefetchPreloadSettingExecutor().Client(this).Execute<ChangePrefetchPreloadSettingResponse, ChangePrefetchPreloadSettingResult, ChangePrefetchPreloadSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  检索域的防火墙包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListFirewallPackagesResponse ListFirewallPackages(ListFirewallPackagesRequest request) {
            return  new ListFirewallPackagesExecutor().Client(this).Execute<ListFirewallPackagesResponse, ListFirewallPackagesResult, ListFirewallPackagesRequest>(request);
        }
#else
        /// <summary>
        ///  检索域的防火墙包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListFirewallPackagesResponse> ListFirewallPackages(ListFirewallPackagesRequest request) {
            return await new ListFirewallPackagesExecutor().Client(this).Execute<ListFirewallPackagesResponse, ListFirewallPackagesResult, ListFirewallPackagesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  对所有使用&quot;http&quot;的URL的请求，用301重定向到相应的 &quot;https&quot; URL。如果你只想对一个子集的请求进行重定向，可以考虑创建一个&quot;Always use HTTPS&quot;的页面规则。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeAlwaysUseHTTPSSettingResponse ChangeAlwaysUseHTTPSSetting(ChangeAlwaysUseHTTPSSettingRequest request) {
            return  new ChangeAlwaysUseHTTPSSettingExecutor().Client(this).Execute<ChangeAlwaysUseHTTPSSettingResponse, ChangeAlwaysUseHTTPSSettingResult, ChangeAlwaysUseHTTPSSettingRequest>(request);
        }
#else
        /// <summary>
        ///  对所有使用&quot;http&quot;的URL的请求，用301重定向到相应的 &quot;https&quot; URL。如果你只想对一个子集的请求进行重定向，可以考虑创建一个&quot;Always use HTTPS&quot;的页面规则。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeAlwaysUseHTTPSSettingResponse> ChangeAlwaysUseHTTPSSetting(ChangeAlwaysUseHTTPSSettingRequest request) {
            return await new ChangeAlwaysUseHTTPSSettingExecutor().Client(this).Execute<ChangeAlwaysUseHTTPSSettingResponse, ChangeAlwaysUseHTTPSSettingResult, ChangeAlwaysUseHTTPSSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为该域启用自动HTTPS重写功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetAutomaticHTTPSRewritesSettingResponse GetAutomaticHTTPSRewritesSetting(GetAutomaticHTTPSRewritesSettingRequest request) {
            return  new GetAutomaticHTTPSRewritesSettingExecutor().Client(this).Execute<GetAutomaticHTTPSRewritesSettingResponse, GetAutomaticHTTPSRewritesSettingResult, GetAutomaticHTTPSRewritesSettingRequest>(request);
        }
#else
        /// <summary>
        ///  为该域启用自动HTTPS重写功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetAutomaticHTTPSRewritesSettingResponse> GetAutomaticHTTPSRewritesSetting(GetAutomaticHTTPSRewritesSettingRequest request) {
            return await new GetAutomaticHTTPSRewritesSettingExecutor().Client(this).Execute<GetAutomaticHTTPSRewritesSettingResponse, GetAutomaticHTTPSRewritesSettingResult, GetAutomaticHTTPSRewritesSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  对您的网站进行高级保护，防止分布式拒绝服务（DDoS）攻击。这是一个不可编辑的值。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetAdvancedDDOSSettingResponse GetAdvancedDDOSSetting(GetAdvancedDDOSSettingRequest request) {
            return  new GetAdvancedDDOSSettingExecutor().Client(this).Execute<GetAdvancedDDOSSettingResponse, GetAdvancedDDOSSettingResult, GetAdvancedDDOSSettingRequest>(request);
        }
#else
        /// <summary>
        ///  对您的网站进行高级保护，防止分布式拒绝服务（DDoS）攻击。这是一个不可编辑的值。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetAdvancedDDOSSettingResponse> GetAdvancedDDOSSetting(GetAdvancedDDOSSettingRequest request) {
            return await new GetAdvancedDDOSSettingExecutor().Client(this).Execute<GetAdvancedDDOSSettingResponse, GetAdvancedDDOSSettingResult, GetAdvancedDDOSSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  购买流量包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateFlowPackResponse CreateFlowPack(CreateFlowPackRequest request) {
            return  new CreateFlowPackExecutor().Client(this).Execute<CreateFlowPackResponse, CreateFlowPackResult, CreateFlowPackRequest>(request);
        }
#else
        /// <summary>
        ///  购买流量包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateFlowPackResponse> CreateFlowPack(CreateFlowPackRequest request) {
            return await new CreateFlowPackExecutor().Client(this).Execute<CreateFlowPackResponse, CreateFlowPackResult, CreateFlowPackRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为该域启用加密TLS 1.3功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetZoneEnableTLS1_3SettingResponse GetZoneEnableTLS1_3Setting(GetZoneEnableTLS1_3SettingRequest request) {
            return  new GetZoneEnableTLS1_3SettingExecutor().Client(this).Execute<GetZoneEnableTLS1_3SettingResponse, GetZoneEnableTLS1_3SettingResult, GetZoneEnableTLS1_3SettingRequest>(request);
        }
#else
        /// <summary>
        ///  为该域启用加密TLS 1.3功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetZoneEnableTLS1_3SettingResponse> GetZoneEnableTLS1_3Setting(GetZoneEnableTLS1_3SettingRequest request) {
            return await new GetZoneEnableTLS1_3SettingExecutor().Client(this).Execute<GetZoneEnableTLS1_3SettingResponse, GetZoneEnableTLS1_3SettingResult, GetZoneEnableTLS1_3SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询Bot开启状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeBotStatusResponse DescribeBotStatus(DescribeBotStatusRequest request) {
            return  new DescribeBotStatusExecutor().Client(this).Execute<DescribeBotStatusResponse, DescribeBotStatusResult, DescribeBotStatusRequest>(request);
        }
#else
        /// <summary>
        ///  查询Bot开启状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeBotStatusResponse> DescribeBotStatus(DescribeBotStatusRequest request) {
            return await new DescribeBotStatusExecutor().Client(this).Execute<DescribeBotStatusResponse, DescribeBotStatusResult, DescribeBotStatusRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  变更上传文件的最大值
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeMaxUploadSettingResponse ChangeMaxUploadSetting(ChangeMaxUploadSettingRequest request) {
            return  new ChangeMaxUploadSettingExecutor().Client(this).Execute<ChangeMaxUploadSettingResponse, ChangeMaxUploadSettingResult, ChangeMaxUploadSettingRequest>(request);
        }
#else
        /// <summary>
        ///  变更上传文件的最大值
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeMaxUploadSettingResponse> ChangeMaxUploadSetting(ChangeMaxUploadSettingRequest request) {
            return await new ChangeMaxUploadSettingExecutor().Client(this).Execute<ChangeMaxUploadSettingResponse, ChangeMaxUploadSettingResult, ChangeMaxUploadSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取HTTPS请求允许使用的TLS协议的最低版本。例如，如果是TLS 1.1，那么TLS 1.0连接将被拒绝，而1.1、1.2和1.3（如果启用）将被允许。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetMinimumTLSVersionSettingResponse GetMinimumTLSVersionSetting(GetMinimumTLSVersionSettingRequest request) {
            return  new GetMinimumTLSVersionSettingExecutor().Client(this).Execute<GetMinimumTLSVersionSettingResponse, GetMinimumTLSVersionSettingResult, GetMinimumTLSVersionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  获取HTTPS请求允许使用的TLS协议的最低版本。例如，如果是TLS 1.1，那么TLS 1.0连接将被拒绝，而1.1、1.2和1.3（如果启用）将被允许。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetMinimumTLSVersionSettingResponse> GetMinimumTLSVersionSetting(GetMinimumTLSVersionSettingRequest request) {
            return await new GetMinimumTLSVersionSettingExecutor().Client(this).Execute<GetMinimumTLSVersionSettingResponse, GetMinimumTLSVersionSettingResult, GetMinimumTLSVersionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  域的相关配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetAllZoneSettingsResponse GetAllZoneSettings(GetAllZoneSettingsRequest request) {
            return  new GetAllZoneSettingsExecutor().Client(this).Execute<GetAllZoneSettingsResponse, GetAllZoneSettingsResult, GetAllZoneSettingsRequest>(request);
        }
#else
        /// <summary>
        ///  域的相关配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetAllZoneSettingsResponse> GetAllZoneSettings(GetAllZoneSettingsRequest request) {
            return await new GetAllZoneSettingsExecutor().Client(this).Execute<GetAllZoneSettingsResponse, GetAllZoneSettingsResult, GetAllZoneSettingsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  TLS 客户端授权要求星盾使用客户端证书连接到您的源服务器（Enterprise Only）。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetTLSClientAuthSettingResponse GetTLSClientAuthSetting(GetTLSClientAuthSettingRequest request) {
            return  new GetTLSClientAuthSettingExecutor().Client(this).Execute<GetTLSClientAuthSettingResponse, GetTLSClientAuthSettingResult, GetTLSClientAuthSettingRequest>(request);
        }
#else
        /// <summary>
        ///  TLS 客户端授权要求星盾使用客户端证书连接到您的源服务器（Enterprise Only）。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetTLSClientAuthSettingResponse> GetTLSClientAuthSetting(GetTLSClientAuthSettingRequest request) {
            return await new GetTLSClientAuthSettingExecutor().Client(this).Execute<GetTLSClientAuthSettingResponse, GetTLSClientAuthSettingResult, GetTLSClientAuthSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  HTTP/2边缘优化，优化了通过HTTP/2提供的资源交付，提高了页面加载性能。当与Worker结合使用时，它还支持对内容交付的精细控制。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeHTTP2EdgePrioritizationSettingResponse ChangeHTTP2EdgePrioritizationSetting(ChangeHTTP2EdgePrioritizationSettingRequest request) {
            return  new ChangeHTTP2EdgePrioritizationSettingExecutor().Client(this).Execute<ChangeHTTP2EdgePrioritizationSettingResponse, ChangeHTTP2EdgePrioritizationSettingResult, ChangeHTTP2EdgePrioritizationSettingRequest>(request);
        }
#else
        /// <summary>
        ///  HTTP/2边缘优化，优化了通过HTTP/2提供的资源交付，提高了页面加载性能。当与Worker结合使用时，它还支持对内容交付的精细控制。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeHTTP2EdgePrioritizationSettingResponse> ChangeHTTP2EdgePrioritizationSetting(ChangeHTTP2EdgePrioritizationSettingRequest request) {
            return await new ChangeHTTP2EdgePrioritizationSettingExecutor().Client(this).Execute<ChangeHTTP2EdgePrioritizationSettingResponse, ChangeHTTP2EdgePrioritizationSettingResult, ChangeHTTP2EdgePrioritizationSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  列出当前定义的所有防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListOfFirewallRulesResponse ListOfFirewallRules(ListOfFirewallRulesRequest request) {
            return  new ListOfFirewallRulesExecutor().Client(this).Execute<ListOfFirewallRulesResponse, ListOfFirewallRulesResult, ListOfFirewallRulesRequest>(request);
        }
#else
        /// <summary>
        ///  列出当前定义的所有防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListOfFirewallRulesResponse> ListOfFirewallRules(ListOfFirewallRulesRequest request) {
            return await new ListOfFirewallRulesExecutor().Client(this).Execute<ListOfFirewallRulesResponse, ListOfFirewallRulesResult, ListOfFirewallRulesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取当前域随机加密设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetOpportunisticEncryptionSettingResponse GetOpportunisticEncryptionSetting(GetOpportunisticEncryptionSettingRequest request) {
            return  new GetOpportunisticEncryptionSettingExecutor().Client(this).Execute<GetOpportunisticEncryptionSettingResponse, GetOpportunisticEncryptionSettingResult, GetOpportunisticEncryptionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  获取当前域随机加密设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetOpportunisticEncryptionSettingResponse> GetOpportunisticEncryptionSetting(GetOpportunisticEncryptionSettingRequest request) {
            return await new GetOpportunisticEncryptionSettingExecutor().Client(this).Execute<GetOpportunisticEncryptionSettingResponse, GetOpportunisticEncryptionSettingResult, GetOpportunisticEncryptionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置HTTPS请求使用的TLS协议的最低版本。例如，如果选择TLS 1.1，那么TLS 1.0连接将被拒绝，而1.1、1.2和1.3（如果启用）将被允许。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeMinimumTLSVersionSettingResponse ChangeMinimumTLSVersionSetting(ChangeMinimumTLSVersionSettingRequest request) {
            return  new ChangeMinimumTLSVersionSettingExecutor().Client(this).Execute<ChangeMinimumTLSVersionSettingResponse, ChangeMinimumTLSVersionSettingResult, ChangeMinimumTLSVersionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  设置HTTPS请求使用的TLS协议的最低版本。例如，如果选择TLS 1.1，那么TLS 1.0连接将被拒绝，而1.1、1.2和1.3（如果启用）将被允许。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeMinimumTLSVersionSettingResponse> ChangeMinimumTLSVersionSetting(ChangeMinimumTLSVersionSettingRequest request) {
            return await new ChangeMinimumTLSVersionSettingExecutor().Client(this).Execute<ChangeMinimumTLSVersionSettingResponse, ChangeMinimumTLSVersionSettingResult, ChangeMinimumTLSVersionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新自定义页面URL
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateCustomPageURLResponse UpdateCustomPageURL(UpdateCustomPageURLRequest request) {
            return  new UpdateCustomPageURLExecutor().Client(this).Execute<UpdateCustomPageURLResponse, UpdateCustomPageURLResult, UpdateCustomPageURLRequest>(request);
        }
#else
        /// <summary>
        ///  更新自定义页面URL
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateCustomPageURLResponse> UpdateCustomPageURL(UpdateCustomPageURLRequest request) {
            return await new UpdateCustomPageURLExecutor().Client(this).Execute<UpdateCustomPageURLResponse, UpdateCustomPageURLResult, UpdateCustomPageURLRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取页面规则列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListPageRulesResponse ListPageRules(ListPageRulesRequest request) {
            return  new ListPageRulesExecutor().Client(this).Execute<ListPageRulesResponse, ListPageRulesResult, ListPageRulesRequest>(request);
        }
#else
        /// <summary>
        ///  获取页面规则列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListPageRulesResponse> ListPageRules(ListPageRulesRequest request) {
            return await new ListPageRulesExecutor().Client(this).Execute<ListPageRulesResponse, ListPageRulesResult, ListPageRulesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开启/关闭HTTP2
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeHTTP2SettingResponse ChangeHTTP2Setting(ChangeHTTP2SettingRequest request) {
            return  new ChangeHTTP2SettingExecutor().Client(this).Execute<ChangeHTTP2SettingResponse, ChangeHTTP2SettingResult, ChangeHTTP2SettingRequest>(request);
        }
#else
        /// <summary>
        ///  开启/关闭HTTP2
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeHTTP2SettingResponse> ChangeHTTP2Setting(ChangeHTTP2SettingRequest request) {
            return await new ChangeHTTP2SettingExecutor().Client(this).Execute<ChangeHTTP2SettingResponse, ChangeHTTP2SettingResult, ChangeHTTP2SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  当开启时，在你的源站离线期间，星盾会提供已缓存过的页面。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeAlwaysOnlineSettingResponse ChangeAlwaysOnlineSetting(ChangeAlwaysOnlineSettingRequest request) {
            return  new ChangeAlwaysOnlineSettingExecutor().Client(this).Execute<ChangeAlwaysOnlineSettingResponse, ChangeAlwaysOnlineSettingResult, ChangeAlwaysOnlineSettingRequest>(request);
        }
#else
        /// <summary>
        ///  当开启时，在你的源站离线期间，星盾会提供已缓存过的页面。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeAlwaysOnlineSettingResponse> ChangeAlwaysOnlineSetting(ChangeAlwaysOnlineSettingRequest request) {
            return await new ChangeAlwaysOnlineSettingExecutor().Client(this).Execute<ChangeAlwaysOnlineSettingResponse, ChangeAlwaysOnlineSettingResult, ChangeAlwaysOnlineSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  在所有启用星盾的子域上启用 IPv6。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeIPv6SettingResponse ChangeIPv6Setting(ChangeIPv6SettingRequest request) {
            return  new ChangeIPv6SettingExecutor().Client(this).Execute<ChangeIPv6SettingResponse, ChangeIPv6SettingResult, ChangeIPv6SettingRequest>(request);
        }
#else
        /// <summary>
        ///  在所有启用星盾的子域上启用 IPv6。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeIPv6SettingResponse> ChangeIPv6Setting(ChangeIPv6SettingRequest request) {
            return await new ChangeIPv6SettingExecutor().Client(this).Execute<ChangeIPv6SettingResponse, ChangeIPv6SettingResult, ChangeIPv6SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建域
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateZoneResponse CreateZone(CreateZoneRequest request) {
            return  new CreateZoneExecutor().Client(this).Execute<CreateZoneResponse, CreateZoneResult, CreateZoneRequest>(request);
        }
#else
        /// <summary>
        ///  创建域
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateZoneResponse> CreateZone(CreateZoneRequest request) {
            return await new CreateZoneExecutor().Client(this).Execute<CreateZoneResponse, CreateZoneResult, CreateZoneRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为你的网站选择适当的安全配置文件，这将自动调整每个安全设置。如果你选择定制一个单独的安全设置，该配置文件将成为自定义。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSecurityLevelSettingResponse GetSecurityLevelSetting(GetSecurityLevelSettingRequest request) {
            return  new GetSecurityLevelSettingExecutor().Client(this).Execute<GetSecurityLevelSettingResponse, GetSecurityLevelSettingResult, GetSecurityLevelSettingRequest>(request);
        }
#else
        /// <summary>
        ///  为你的网站选择适当的安全配置文件，这将自动调整每个安全设置。如果你选择定制一个单独的安全设置，该配置文件将成为自定义。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSecurityLevelSettingResponse> GetSecurityLevelSetting(GetSecurityLevelSettingRequest request) {
            return await new GetSecurityLevelSettingExecutor().Client(this).Execute<GetSecurityLevelSettingResponse, GetSecurityLevelSettingResult, GetSecurityLevelSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListAvailablePageRuleSettingResponse ListAvailablePageRuleSetting(ListAvailablePageRuleSettingRequest request) {
            return  new ListAvailablePageRuleSettingExecutor().Client(this).Execute<ListAvailablePageRuleSettingResponse, ListAvailablePageRuleSettingResult, ListAvailablePageRuleSettingRequest>(request);
        }
#else
        /// <summary>
        ///  
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListAvailablePageRuleSettingResponse> ListAvailablePageRuleSetting(ListAvailablePageRuleSettingRequest request) {
            return await new ListAvailablePageRuleSettingExecutor().Client(this).Execute<ListAvailablePageRuleSettingResponse, ListAvailablePageRuleSettingResult, ListAvailablePageRuleSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  Rocket Loader是一个通用的异步JavaScript优化，它优先渲染你的内容同时异步加载你的网站的Javascript。
        /// 开启Rocket Loader将立即改善网页的渲染时间，有时以首次绘制时间（TTFP）以及window.onload时间（假设页面上有JavaScript）来衡量，这对你的搜索排名会产生积极影响。
        /// 当打开时，Rocket Loader将自动推迟加载你的HTML中引用的所有Javascript，而不需要配置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeRocketLoaderSettingResponse ChangeRocketLoaderSetting(ChangeRocketLoaderSettingRequest request) {
            return  new ChangeRocketLoaderSettingExecutor().Client(this).Execute<ChangeRocketLoaderSettingResponse, ChangeRocketLoaderSettingResult, ChangeRocketLoaderSettingRequest>(request);
        }
#else
        /// <summary>
        ///  Rocket Loader是一个通用的异步JavaScript优化，它优先渲染你的内容同时异步加载你的网站的Javascript。
        /// 开启Rocket Loader将立即改善网页的渲染时间，有时以首次绘制时间（TTFP）以及window.onload时间（假设页面上有JavaScript）来衡量，这对你的搜索排名会产生积极影响。
        /// 当打开时，Rocket Loader将自动推迟加载你的HTML中引用的所有Javascript，而不需要配置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeRocketLoaderSettingResponse> ChangeRocketLoaderSetting(ChangeRocketLoaderSettingRequest request) {
            return await new ChangeRocketLoaderSettingExecutor().Client(this).Execute<ChangeRocketLoaderSettingResponse, ChangeRocketLoaderSettingResult, ChangeRocketLoaderSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取Pseudo IPv4(IPv6到IPv4的转换服务)的设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetPseudoIPv4SettingResponse GetPseudoIPv4Setting(GetPseudoIPv4SettingRequest request) {
            return  new GetPseudoIPv4SettingExecutor().Client(this).Execute<GetPseudoIPv4SettingResponse, GetPseudoIPv4SettingResult, GetPseudoIPv4SettingRequest>(request);
        }
#else
        /// <summary>
        ///  获取Pseudo IPv4(IPv6到IPv4的转换服务)的设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetPseudoIPv4SettingResponse> GetPseudoIPv4Setting(GetPseudoIPv4SettingRequest request) {
            return await new GetPseudoIPv4SettingExecutor().Client(this).Execute<GetPseudoIPv4SettingResponse, GetPseudoIPv4SettingResult, GetPseudoIPv4SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  域可以使用的可用自定义页面列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListAvailableCustomPagesResponse ListAvailableCustomPages(ListAvailableCustomPagesRequest request) {
            return  new ListAvailableCustomPagesExecutor().Client(this).Execute<ListAvailableCustomPagesResponse, ListAvailableCustomPagesResult, ListAvailableCustomPagesRequest>(request);
        }
#else
        /// <summary>
        ///  域可以使用的可用自定义页面列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListAvailableCustomPagesResponse> ListAvailableCustomPages(ListAvailableCustomPagesRequest request) {
            return await new ListAvailableCustomPagesExecutor().Client(this).Execute<ListAvailableCustomPagesResponse, ListAvailableCustomPagesResult, ListAvailableCustomPagesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  WebSockets是客户端和源服务器之间持续的开放连接。在WebSockets连接中，客户端和源服务器可以来回传递数据，而不需要重新建立会话。
        /// 这使得在WebSockets连接中的数据交换非常快。WebSockets经常被用于实时应用，如即时聊天和游戏。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeWebSocketsSettingResponse ChangeWebSocketsSetting(ChangeWebSocketsSettingRequest request) {
            return  new ChangeWebSocketsSettingExecutor().Client(this).Execute<ChangeWebSocketsSettingResponse, ChangeWebSocketsSettingResult, ChangeWebSocketsSettingRequest>(request);
        }
#else
        /// <summary>
        ///  WebSockets是客户端和源服务器之间持续的开放连接。在WebSockets连接中，客户端和源服务器可以来回传递数据，而不需要重新建立会话。
        /// 这使得在WebSockets连接中的数据交换非常快。WebSockets经常被用于实时应用，如即时聊天和游戏。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeWebSocketsSettingResponse> ChangeWebSocketsSetting(ChangeWebSocketsSettingRequest request) {
            return await new ChangeWebSocketsSettingExecutor().Client(this).Execute<ChangeWebSocketsSettingResponse, ChangeWebSocketsSettingResult, ChangeWebSocketsSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  TLS 客户端授权要求星盾使用客户端证书连接到您的源服务器（Enterprise Only）。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeTLSClientAuthSettingResponse ChangeTLSClientAuthSetting(ChangeTLSClientAuthSettingRequest request) {
            return  new ChangeTLSClientAuthSettingExecutor().Client(this).Execute<ChangeTLSClientAuthSettingResponse, ChangeTLSClientAuthSettingResult, ChangeTLSClientAuthSettingRequest>(request);
        }
#else
        /// <summary>
        ///  TLS 客户端授权要求星盾使用客户端证书连接到您的源服务器（Enterprise Only）。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeTLSClientAuthSettingResponse> ChangeTLSClientAuthSetting(ChangeTLSClientAuthSettingRequest request) {
            return await new ChangeTLSClientAuthSettingExecutor().Client(this).Execute<ChangeTLSClientAuthSettingResponse, ChangeTLSClientAuthSettingResult, ChangeTLSClientAuthSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  星盾将代源服务器上任何 502、504 错误的客户错误页面，而不是显示默认的星盾错误页面。这不适用于 522 错误，并且仅限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetEnableErrorPagesOnSettingResponse GetEnableErrorPagesOnSetting(GetEnableErrorPagesOnSettingRequest request) {
            return  new GetEnableErrorPagesOnSettingExecutor().Client(this).Execute<GetEnableErrorPagesOnSettingResponse, GetEnableErrorPagesOnSettingResult, GetEnableErrorPagesOnSettingRequest>(request);
        }
#else
        /// <summary>
        ///  星盾将代源服务器上任何 502、504 错误的客户错误页面，而不是显示默认的星盾错误页面。这不适用于 522 错误，并且仅限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetEnableErrorPagesOnSettingResponse> GetEnableErrorPagesOnSetting(GetEnableErrorPagesOnSettingRequest request) {
            return await new GetEnableErrorPagesOnSettingExecutor().Client(this).Execute<GetEnableErrorPagesOnSettingResponse, GetEnableErrorPagesOnSettingResult, GetEnableErrorPagesOnSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为你的网站选择适当的安全配置文件，这将自动调整每个安全设置。如果你选择定制一个单独的安全设置，该配置文件将成为自定义。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeSecurityLevelSettingResponse ChangeSecurityLevelSetting(ChangeSecurityLevelSettingRequest request) {
            return  new ChangeSecurityLevelSettingExecutor().Client(this).Execute<ChangeSecurityLevelSettingResponse, ChangeSecurityLevelSettingResult, ChangeSecurityLevelSettingRequest>(request);
        }
#else
        /// <summary>
        ///  为你的网站选择适当的安全配置文件，这将自动调整每个安全设置。如果你选择定制一个单独的安全设置，该配置文件将成为自定义。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeSecurityLevelSettingResponse> ChangeSecurityLevelSetting(ChangeSecurityLevelSettingRequest request) {
            return await new ChangeSecurityLevelSettingExecutor().Client(this).Execute<ChangeSecurityLevelSettingResponse, ChangeSecurityLevelSettingResult, ChangeSecurityLevelSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  上载域的新SSL证书
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateSSLConfigurationResponse CreateSSLConfiguration(CreateSSLConfigurationRequest request) {
            return  new CreateSSLConfigurationExecutor().Client(this).Execute<CreateSSLConfigurationResponse, CreateSSLConfigurationResult, CreateSSLConfigurationRequest>(request);
        }
#else
        /// <summary>
        ///  上载域的新SSL证书
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateSSLConfigurationResponse> CreateSSLConfiguration(CreateSSLConfigurationRequest request) {
            return await new CreateSSLConfigurationExecutor().Client(this).Execute<CreateSSLConfigurationResponse, CreateSSLConfigurationResult, CreateSSLConfigurationRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  星盾域的安全标头。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSecurityHeaderHSTSSettingResponse GetSecurityHeaderHSTSSetting(GetSecurityHeaderHSTSSettingRequest request) {
            return  new GetSecurityHeaderHSTSSettingExecutor().Client(this).Execute<GetSecurityHeaderHSTSSettingResponse, GetSecurityHeaderHSTSSettingResult, GetSecurityHeaderHSTSSettingRequest>(request);
        }
#else
        /// <summary>
        ///  星盾域的安全标头。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSecurityHeaderHSTSSettingResponse> GetSecurityHeaderHSTSSetting(GetSecurityHeaderHSTSSettingRequest request) {
            return await new GetSecurityHeaderHSTSSettingExecutor().Client(this).Execute<GetSecurityHeaderHSTSSettingResponse, GetSecurityHeaderHSTSSettingResult, GetSecurityHeaderHSTSSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取域的通用SSL证书设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UniversalSSLSettingsDetailsResponse UniversalSSLSettingsDetails(UniversalSSLSettingsDetailsRequest request) {
            return  new UniversalSSLSettingsDetailsExecutor().Client(this).Execute<UniversalSSLSettingsDetailsResponse, UniversalSSLSettingsDetailsResult, UniversalSSLSettingsDetailsRequest>(request);
        }
#else
        /// <summary>
        ///  获取域的通用SSL证书设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UniversalSSLSettingsDetailsResponse> UniversalSSLSettingsDetails(UniversalSSLSettingsDetailsRequest request) {
            return await new UniversalSSLSettingsDetailsExecutor().Client(this).Execute<UniversalSSLSettingsDetailsResponse, UniversalSSLSettingsDetailsResult, UniversalSSLSettingsDetailsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  在你的网页上对电子邮件地址进行加密，以防止机器人入侵，同时保持它们对人类可见。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetEmailObfuscationSettingResponse GetEmailObfuscationSetting(GetEmailObfuscationSettingRequest request) {
            return  new GetEmailObfuscationSettingExecutor().Client(this).Execute<GetEmailObfuscationSettingResponse, GetEmailObfuscationSettingResult, GetEmailObfuscationSettingRequest>(request);
        }
#else
        /// <summary>
        ///  在你的网页上对电子邮件地址进行加密，以防止机器人入侵，同时保持它们对人类可见。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetEmailObfuscationSettingResponse> GetEmailObfuscationSetting(GetEmailObfuscationSettingRequest request) {
            return await new GetEmailObfuscationSettingExecutor().Client(this).Execute<GetEmailObfuscationSettingResponse, GetEmailObfuscationSettingResult, GetEmailObfuscationSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  允许客户继续在我们发送给源的头中使用真正的客户IP。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeTrueClientIPSettingResponse ChangeTrueClientIPSetting(ChangeTrueClientIPSettingRequest request) {
            return  new ChangeTrueClientIPSettingExecutor().Client(this).Execute<ChangeTrueClientIPSettingResponse, ChangeTrueClientIPSettingResult, ChangeTrueClientIPSettingRequest>(request);
        }
#else
        /// <summary>
        ///  允许客户继续在我们发送给源的头中使用真正的客户IP。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeTrueClientIPSettingResponse> ChangeTrueClientIPSetting(ChangeTrueClientIPSettingRequest request) {
            return await new ChangeTrueClientIPSettingExecutor().Client(this).Execute<ChangeTrueClientIPSettingResponse, ChangeTrueClientIPSettingResult, ChangeTrueClientIPSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  自动将移动设备上的访问者重定向到一个移动优化的子域上
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeMobileRedirectSettingResponse ChangeMobileRedirectSetting(ChangeMobileRedirectSettingRequest request) {
            return  new ChangeMobileRedirectSettingExecutor().Client(this).Execute<ChangeMobileRedirectSettingResponse, ChangeMobileRedirectSettingResult, ChangeMobileRedirectSettingRequest>(request);
        }
#else
        /// <summary>
        ///  自动将移动设备上的访问者重定向到一个移动优化的子域上
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeMobileRedirectSettingResponse> ChangeMobileRedirectSetting(ChangeMobileRedirectSettingRequest request) {
            return await new ChangeMobileRedirectSettingExecutor().Client(this).Execute<ChangeMobileRedirectSettingResponse, ChangeMobileRedirectSettingResult, ChangeMobileRedirectSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  星盾将把具有相同查询字符串的文件视为缓存中的同一个文件，而不管查询字符串的顺序如何。这只限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetEnableQueryStringSortSettingResponse GetEnableQueryStringSortSetting(GetEnableQueryStringSortSettingRequest request) {
            return  new GetEnableQueryStringSortSettingExecutor().Client(this).Execute<GetEnableQueryStringSortSettingResponse, GetEnableQueryStringSortSettingResult, GetEnableQueryStringSortSettingRequest>(request);
        }
#else
        /// <summary>
        ///  星盾将把具有相同查询字符串的文件视为缓存中的同一个文件，而不管查询字符串的顺序如何。这只限于企业级域。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetEnableQueryStringSortSettingResponse> GetEnableQueryStringSortSetting(GetEnableQueryStringSortSettingRequest request) {
            return await new GetEnableQueryStringSortSettingExecutor().Client(this).Execute<GetEnableQueryStringSortSettingResponse, GetEnableQueryStringSortSettingResult, GetEnableQueryStringSortSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  在所有启用星盾的子域上启用 IPv6。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetIPv6SettingResponse GetIPv6Setting(GetIPv6SettingRequest request) {
            return  new GetIPv6SettingExecutor().Client(this).Execute<GetIPv6SettingResponse, GetIPv6SettingResult, GetIPv6SettingRequest>(request);
        }
#else
        /// <summary>
        ///  在所有启用星盾的子域上启用 IPv6。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetIPv6SettingResponse> GetIPv6Setting(GetIPv6SettingRequest request) {
            return await new GetIPv6SettingExecutor().Client(this).Execute<GetIPv6SettingResponse, GetIPv6SettingResult, GetIPv6SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  对于一个特定域，订购一个高级证书包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public OrderAdvancedCertificateManagerCertificatePackResponse OrderAdvancedCertificateManagerCertificatePack(OrderAdvancedCertificateManagerCertificatePackRequest request) {
            return  new OrderAdvancedCertificateManagerCertificatePackExecutor().Client(this).Execute<OrderAdvancedCertificateManagerCertificatePackResponse, OrderAdvancedCertificateManagerCertificatePackResult, OrderAdvancedCertificateManagerCertificatePackRequest>(request);
        }
#else
        /// <summary>
        ///  对于一个特定域，订购一个高级证书包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<OrderAdvancedCertificateManagerCertificatePackResponse> OrderAdvancedCertificateManagerCertificatePack(OrderAdvancedCertificateManagerCertificatePackRequest request) {
            return await new OrderAdvancedCertificateManagerCertificatePackExecutor().Client(this).Execute<OrderAdvancedCertificateManagerCertificatePackResponse, OrderAdvancedCertificateManagerCertificatePackResult, OrderAdvancedCertificateManagerCertificatePackRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  自动优化移动设备上网站访问者的图像加载
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeMirageSettingResponse ChangeMirageSetting(ChangeMirageSettingRequest request) {
            return  new ChangeMirageSettingExecutor().Client(this).Execute<ChangeMirageSettingResponse, ChangeMirageSettingResult, ChangeMirageSettingRequest>(request);
        }
#else
        /// <summary>
        ///  自动优化移动设备上网站访问者的图像加载
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeMirageSettingResponse> ChangeMirageSetting(ChangeMirageSettingRequest request) {
            return await new ChangeMirageSettingExecutor().Client(this).Execute<ChangeMirageSettingResponse, ChangeMirageSettingResult, ChangeMirageSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  对于给定域，删除高级证书包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteAdvancedCertificateManagerCertificatePackResponse DeleteAdvancedCertificateManagerCertificatePack(DeleteAdvancedCertificateManagerCertificatePackRequest request) {
            return  new DeleteAdvancedCertificateManagerCertificatePackExecutor().Client(this).Execute<DeleteAdvancedCertificateManagerCertificatePackResponse, DeleteAdvancedCertificateManagerCertificatePackResult, DeleteAdvancedCertificateManagerCertificatePackRequest>(request);
        }
#else
        /// <summary>
        ///  对于给定域，删除高级证书包
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteAdvancedCertificateManagerCertificatePackResponse> DeleteAdvancedCertificateManagerCertificatePack(DeleteAdvancedCertificateManagerCertificatePackRequest request) {
            return await new DeleteAdvancedCertificateManagerCertificatePackExecutor().Client(this).Execute<DeleteAdvancedCertificateManagerCertificatePackResponse, DeleteAdvancedCertificateManagerCertificatePackResult, DeleteAdvancedCertificateManagerCertificatePackRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修补域的通用SSL设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public EditUniversalSSLSettingsResponse EditUniversalSSLSettings(EditUniversalSSLSettingsRequest request) {
            return  new EditUniversalSSLSettingsExecutor().Client(this).Execute<EditUniversalSSLSettingsResponse, EditUniversalSSLSettingsResult, EditUniversalSSLSettingsRequest>(request);
        }
#else
        /// <summary>
        ///  修补域的通用SSL设置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<EditUniversalSSLSettingsResponse> EditUniversalSSLSettings(EditUniversalSSLSettingsRequest request) {
            return await new EditUniversalSSLSettingsExecutor().Client(this).Execute<EditUniversalSSLSettingsResponse, EditUniversalSSLSettingsResult, EditUniversalSSLSettingsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  SSL对访问者的连接进行加密，并保护信用卡号码和其他进出网站的个人数据。
        /// SSL最多需要5分钟才能完全激活。需要在星盾激活你的根域或www域。
        /// Off，访客和星盾之间没有SSL，星盾和你的Web服务器之间也没有SSL（所有HTTP流量）。
        /// Flexible, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，但星盾和你的 Web 服务器之间没有 SSL。您不需要在您的 Web 服务器上安装 SSL 证书，但您的访客仍会看到启用 HTTPS 的网站。
        /// Full, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，以及星盾和你的 Web 服务器之间的 SSL。您至少需要有自己的 SSL 证书或自签名的证书。
        /// Full (Strict), 访客和星盾之间的 SSL -- 访客在您的网站上看到 HTTPS，以及星盾和您的 Web 服务器之间的 SSL。你需要在你的网络服务器上安装一个有效的SSL证书。
        /// 这个证书必须由一个证书机构签署，有一个在未来的到期日，并为请求的域名（主机名）作出回应。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetSSLSettingResponse GetSSLSetting(GetSSLSettingRequest request) {
            return  new GetSSLSettingExecutor().Client(this).Execute<GetSSLSettingResponse, GetSSLSettingResult, GetSSLSettingRequest>(request);
        }
#else
        /// <summary>
        ///  SSL对访问者的连接进行加密，并保护信用卡号码和其他进出网站的个人数据。
        /// SSL最多需要5分钟才能完全激活。需要在星盾激活你的根域或www域。
        /// Off，访客和星盾之间没有SSL，星盾和你的Web服务器之间也没有SSL（所有HTTP流量）。
        /// Flexible, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，但星盾和你的 Web 服务器之间没有 SSL。您不需要在您的 Web 服务器上安装 SSL 证书，但您的访客仍会看到启用 HTTPS 的网站。
        /// Full, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，以及星盾和你的 Web 服务器之间的 SSL。您至少需要有自己的 SSL 证书或自签名的证书。
        /// Full (Strict), 访客和星盾之间的 SSL -- 访客在您的网站上看到 HTTPS，以及星盾和您的 Web 服务器之间的 SSL。你需要在你的网络服务器上安装一个有效的SSL证书。
        /// 这个证书必须由一个证书机构签署，有一个在未来的到期日，并为请求的域名（主机名）作出回应。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetSSLSettingResponse> GetSSLSetting(GetSSLSettingRequest request) {
            return await new GetSSLSettingExecutor().Client(this).Execute<GetSSLSettingResponse, GetSSLSettingResult, GetSSLSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  Rocket Loader是一个通用的异步JavaScript优化，它优先渲染你的内容同时异步加载你的网站的Javascript。
        /// 开启Rocket Loader将立即改善网页的渲染时间，有时以首次绘制时间（TTFP）以及window.onload时间（假设页面上有JavaScript）来衡量，这对你的搜索排名会产生积极影响。
        /// 当打开时，Rocket Loader将自动推迟加载你的HTML中引用的所有Javascript，而不需要配置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetRocketLoaderSettingResponse GetRocketLoaderSetting(GetRocketLoaderSettingRequest request) {
            return  new GetRocketLoaderSettingExecutor().Client(this).Execute<GetRocketLoaderSettingResponse, GetRocketLoaderSettingResult, GetRocketLoaderSettingRequest>(request);
        }
#else
        /// <summary>
        ///  Rocket Loader是一个通用的异步JavaScript优化，它优先渲染你的内容同时异步加载你的网站的Javascript。
        /// 开启Rocket Loader将立即改善网页的渲染时间，有时以首次绘制时间（TTFP）以及window.onload时间（假设页面上有JavaScript）来衡量，这对你的搜索排名会产生积极影响。
        /// 当打开时，Rocket Loader将自动推迟加载你的HTML中引用的所有Javascript，而不需要配置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetRocketLoaderSettingResponse> GetRocketLoaderSetting(GetRocketLoaderSettingRequest request) {
            return await new GetRocketLoaderSettingExecutor().Client(this).Execute<GetRocketLoaderSettingResponse, GetRocketLoaderSettingResult, GetRocketLoaderSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除页面规则
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeletePageRuleResponse DeletePageRule(DeletePageRuleRequest request) {
            return  new DeletePageRuleExecutor().Client(this).Execute<DeletePageRuleResponse, DeletePageRuleResult, DeletePageRuleRequest>(request);
        }
#else
        /// <summary>
        ///  删除页面规则
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeletePageRuleResponse> DeletePageRule(DeletePageRuleRequest request) {
            return await new DeletePageRuleExecutor().Client(this).Execute<DeletePageRuleResponse, DeletePageRuleResult, DeletePageRuleRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  当请求资产的客户端支持brotli压缩算法时，星盾将提供资产的brotli压缩版本。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeBrotliSettingResponse ChangeBrotliSetting(ChangeBrotliSettingRequest request) {
            return  new ChangeBrotliSettingExecutor().Client(this).Execute<ChangeBrotliSettingResponse, ChangeBrotliSettingResult, ChangeBrotliSettingRequest>(request);
        }
#else
        /// <summary>
        ///  当请求资产的客户端支持brotli压缩算法时，星盾将提供资产的brotli压缩版本。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeBrotliSettingResponse> ChangeBrotliSetting(ChangeBrotliSettingRequest request) {
            return await new ChangeBrotliSettingExecutor().Client(this).Execute<ChangeBrotliSettingResponse, ChangeBrotliSettingResult, ChangeBrotliSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  启用IP地理定位，让星盾对您网站的访问者进行地理定位，并将国家代码传递给您。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeIPGeolocationSettingResponse ChangeIPGeolocationSetting(ChangeIPGeolocationSettingRequest request) {
            return  new ChangeIPGeolocationSettingExecutor().Client(this).Execute<ChangeIPGeolocationSettingResponse, ChangeIPGeolocationSettingResult, ChangeIPGeolocationSettingRequest>(request);
        }
#else
        /// <summary>
        ///  启用IP地理定位，让星盾对您网站的访问者进行地理定位，并将国家代码传递给您。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeIPGeolocationSettingResponse> ChangeIPGeolocationSetting(ChangeIPGeolocationSettingRequest request) {
            return await new ChangeIPGeolocationSettingExecutor().Client(this).Execute<ChangeIPGeolocationSettingResponse, ChangeIPGeolocationSettingResult, ChangeIPGeolocationSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  Privacy Pass是一个由Privacy Pass团队开发的浏览器扩展，旨在改善您的访客的浏览体验。启用Privacy Pass将减少显示给你的访客的验证码的数量。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangePrivacyPassSettingResponse ChangePrivacyPassSetting(ChangePrivacyPassSettingRequest request) {
            return  new ChangePrivacyPassSettingExecutor().Client(this).Execute<ChangePrivacyPassSettingResponse, ChangePrivacyPassSettingResult, ChangePrivacyPassSettingRequest>(request);
        }
#else
        /// <summary>
        ///  Privacy Pass是一个由Privacy Pass团队开发的浏览器扩展，旨在改善您的访客的浏览体验。启用Privacy Pass将减少显示给你的访客的验证码的数量。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangePrivacyPassSettingResponse> ChangePrivacyPassSetting(ChangePrivacyPassSettingRequest request) {
            return await new ChangePrivacyPassSettingExecutor().Client(this).Execute<ChangePrivacyPassSettingResponse, ChangePrivacyPassSettingResult, ChangePrivacyPassSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  Privacy Pass是一个由Privacy Pass团队开发的浏览器扩展，旨在改善您的访客的浏览体验。启用Privacy Pass将减少显示给你的访客的验证码的数量。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetPrivacyPassSettingResponse GetPrivacyPassSetting(GetPrivacyPassSettingRequest request) {
            return  new GetPrivacyPassSettingExecutor().Client(this).Execute<GetPrivacyPassSettingResponse, GetPrivacyPassSettingResult, GetPrivacyPassSettingRequest>(request);
        }
#else
        /// <summary>
        ///  Privacy Pass是一个由Privacy Pass团队开发的浏览器扩展，旨在改善您的访客的浏览体验。启用Privacy Pass将减少显示给你的访客的验证码的数量。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetPrivacyPassSettingResponse> GetPrivacyPassSetting(GetPrivacyPassSettingRequest request) {
            return await new GetPrivacyPassSettingExecutor().Client(this).Execute<GetPrivacyPassSettingResponse, GetPrivacyPassSettingResult, GetPrivacyPassSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建新的防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateFirewallRulesResponse CreateFirewallRules(CreateFirewallRulesRequest request) {
            return  new CreateFirewallRulesExecutor().Client(this).Execute<CreateFirewallRulesResponse, CreateFirewallRulesResult, CreateFirewallRulesRequest>(request);
        }
#else
        /// <summary>
        ///  创建新的防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateFirewallRulesResponse> CreateFirewallRules(CreateFirewallRulesRequest request) {
            return await new CreateFirewallRulesExecutor().Client(this).Execute<CreateFirewallRulesResponse, CreateFirewallRulesResult, CreateFirewallRulesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为该域启用加密TLS 1.3功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeTLS1_3SettingResponse ChangeTLS1_3Setting(ChangeTLS1_3SettingRequest request) {
            return  new ChangeTLS1_3SettingExecutor().Client(this).Execute<ChangeTLS1_3SettingResponse, ChangeTLS1_3SettingResult, ChangeTLS1_3SettingRequest>(request);
        }
#else
        /// <summary>
        ///  为该域启用加密TLS 1.3功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeTLS1_3SettingResponse> ChangeTLS1_3Setting(ChangeTLS1_3SettingRequest request) {
            return await new ChangeTLS1_3SettingExecutor().Client(this).Execute<ChangeTLS1_3SettingResponse, ChangeTLS1_3SettingResult, ChangeTLS1_3SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  为该域启用自动HTTPS重写功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeAutomaticHTTPSRewritesSettingResponse ChangeAutomaticHTTPSRewritesSetting(ChangeAutomaticHTTPSRewritesSettingRequest request) {
            return  new ChangeAutomaticHTTPSRewritesSettingExecutor().Client(this).Execute<ChangeAutomaticHTTPSRewritesSettingResponse, ChangeAutomaticHTTPSRewritesSettingResult, ChangeAutomaticHTTPSRewritesSettingRequest>(request);
        }
#else
        /// <summary>
        ///  为该域启用自动HTTPS重写功能。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeAutomaticHTTPSRewritesSettingResponse> ChangeAutomaticHTTPSRewritesSetting(ChangeAutomaticHTTPSRewritesSettingRequest request) {
            return await new ChangeAutomaticHTTPSRewritesSettingExecutor().Client(this).Execute<ChangeAutomaticHTTPSRewritesSettingResponse, ChangeAutomaticHTTPSRewritesSettingResult, ChangeAutomaticHTTPSRewritesSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除现有防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteIndividualFirewallRulesResponse DeleteIndividualFirewallRules(DeleteIndividualFirewallRulesRequest request) {
            return  new DeleteIndividualFirewallRulesExecutor().Client(this).Execute<DeleteIndividualFirewallRulesResponse, DeleteIndividualFirewallRulesResult, DeleteIndividualFirewallRulesRequest>(request);
        }
#else
        /// <summary>
        ///  删除现有防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteIndividualFirewallRulesResponse> DeleteIndividualFirewallRules(DeleteIndividualFirewallRulesRequest request) {
            return await new DeleteIndividualFirewallRulesExecutor().Client(this).Execute<DeleteIndividualFirewallRulesResponse, DeleteIndividualFirewallRulesResult, DeleteIndividualFirewallRulesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  如果你的网站上有敏感的内容，你想让真正的访问者看到，但你想对可疑的访问者进行隐藏，你所要做的就是用星盾SSE标签来包装这些内容。
        /// 用下面的SSE标签包住任何你想不让可疑访客看到的内容，&lt;!--sse--&gt;&lt;!--/sse--&gt;。
        /// 例如，&lt;!--sse--&gt;不好的访问者不会看到我的电话号码，555-555-5555&lt;!--/sse--&gt;。注意，SSE只对HTML起作用。
        /// 如果你启用了HTML最小化功能，当你的HTML源代码通过星盾提供服务时，你不会看到SSE标签。
        /// 在这种情况下，SSE 仍将发挥作用，因为星盾的 HTML 缩减和 SSE 功能是在资源通过我们的网络传输给我们时即时发生的。当资源通过我们的网络移动到访问者的计算机上时，SSE 仍会发挥作用。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetServerSideExcludeSettingResponse GetServerSideExcludeSetting(GetServerSideExcludeSettingRequest request) {
            return  new GetServerSideExcludeSettingExecutor().Client(this).Execute<GetServerSideExcludeSettingResponse, GetServerSideExcludeSettingResult, GetServerSideExcludeSettingRequest>(request);
        }
#else
        /// <summary>
        ///  如果你的网站上有敏感的内容，你想让真正的访问者看到，但你想对可疑的访问者进行隐藏，你所要做的就是用星盾SSE标签来包装这些内容。
        /// 用下面的SSE标签包住任何你想不让可疑访客看到的内容，&lt;!--sse--&gt;&lt;!--/sse--&gt;。
        /// 例如，&lt;!--sse--&gt;不好的访问者不会看到我的电话号码，555-555-5555&lt;!--/sse--&gt;。注意，SSE只对HTML起作用。
        /// 如果你启用了HTML最小化功能，当你的HTML源代码通过星盾提供服务时，你不会看到SSE标签。
        /// 在这种情况下，SSE 仍将发挥作用，因为星盾的 HTML 缩减和 SSE 功能是在资源通过我们的网络传输给我们时即时发生的。当资源通过我们的网络移动到访问者的计算机上时，SSE 仍会发挥作用。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetServerSideExcludeSettingResponse> GetServerSideExcludeSetting(GetServerSideExcludeSettingRequest request) {
            return await new GetServerSideExcludeSettingExecutor().Client(this).Execute<GetServerSideExcludeSettingResponse, GetServerSideExcludeSettingResult, GetServerSideExcludeSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开启/关闭 0-RTT
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public Change0_RTTSessionResumptionSettingResponse Change0_RTTSessionResumptionSetting(Change0_RTTSessionResumptionSettingRequest request) {
            return  new Change0_RTTSessionResumptionSettingExecutor().Client(this).Execute<Change0_RTTSessionResumptionSettingResponse, Change0_RTTSessionResumptionSettingResult, Change0_RTTSessionResumptionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  开启/关闭 0-RTT
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<Change0_RTTSessionResumptionSettingResponse> Change0_RTTSessionResumptionSetting(Change0_RTTSessionResumptionSettingRequest request) {
            return await new Change0_RTTSessionResumptionSettingExecutor().Client(this).Execute<Change0_RTTSessionResumptionSettingResponse, Change0_RTTSessionResumptionSettingResult, Change0_RTTSessionResumptionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  对所有使用&quot;http&quot;的URL的请求，用301重定向到相应的 &quot;https&quot; URL。如果你只想对一个子集的请求进行重定向，可以考虑创建一个&quot;Always use HTTPS&quot;的页面规则。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetAlwaysUseHTTPSSettingResponse GetAlwaysUseHTTPSSetting(GetAlwaysUseHTTPSSettingRequest request) {
            return  new GetAlwaysUseHTTPSSettingExecutor().Client(this).Execute<GetAlwaysUseHTTPSSettingResponse, GetAlwaysUseHTTPSSettingResult, GetAlwaysUseHTTPSSettingRequest>(request);
        }
#else
        /// <summary>
        ///  对所有使用&quot;http&quot;的URL的请求，用301重定向到相应的 &quot;https&quot; URL。如果你只想对一个子集的请求进行重定向，可以考虑创建一个&quot;Always use HTTPS&quot;的页面规则。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetAlwaysUseHTTPSSettingResponse> GetAlwaysUseHTTPSSetting(GetAlwaysUseHTTPSSettingRequest request) {
            return await new GetAlwaysUseHTTPSSettingExecutor().Client(this).Execute<GetAlwaysUseHTTPSSettingResponse, GetAlwaysUseHTTPSSettingResult, GetAlwaysUseHTTPSSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  套餐包详情查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribePackageResponse DescribePackage(DescribePackageRequest request) {
            return  new DescribePackageExecutor().Client(this).Execute<DescribePackageResponse, DescribePackageResult, DescribePackageRequest>(request);
        }
#else
        /// <summary>
        ///  套餐包详情查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribePackageResponse> DescribePackage(DescribePackageRequest request) {
            return await new DescribePackageExecutor().Client(this).Execute<DescribePackageResponse, DescribePackageResult, DescribePackageRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建页面规则
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreatePageRuleResponse CreatePageRule(CreatePageRuleRequest request) {
            return  new CreatePageRuleExecutor().Client(this).Execute<CreatePageRuleResponse, CreatePageRuleResult, CreatePageRuleRequest>(request);
        }
#else
        /// <summary>
        ///  创建页面规则
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreatePageRuleResponse> CreatePageRule(CreatePageRuleRequest request) {
            return await new CreatePageRuleExecutor().Client(this).Execute<CreatePageRuleResponse, CreatePageRuleResult, CreatePageRuleRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  SSL对访问者的连接进行加密，并保护信用卡号码和其他进出网站的个人数据。
        /// SSL最多需要5分钟才能完全激活。需要在星盾激活你的根域或www域。
        /// Off，访客和星盾之间没有SSL，星盾和你的Web服务器之间也没有SSL（所有HTTP流量）。
        /// Flexible, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，但星盾和你的 Web 服务器之间没有 SSL。您不需要在您的 Web 服务器上安装 SSL 证书，但您的访客仍会看到启用 HTTPS 的网站。
        /// Full, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，以及星盾和你的 Web 服务器之间的 SSL。您至少需要有自己的 SSL 证书或自签名的证书。
        /// Full (Strict), 访客和星盾之间的 SSL -- 访客在您的网站上看到 HTTPS，以及星盾和您的 Web 服务器之间的 SSL。你需要在你的网络服务器上安装一个有效的SSL证书。
        /// 这个证书必须由一个证书机构签署，有一个在未来的到期日，并为请求的域名（主机名）作出回应。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeSSLSettingResponse ChangeSSLSetting(ChangeSSLSettingRequest request) {
            return  new ChangeSSLSettingExecutor().Client(this).Execute<ChangeSSLSettingResponse, ChangeSSLSettingResult, ChangeSSLSettingRequest>(request);
        }
#else
        /// <summary>
        ///  SSL对访问者的连接进行加密，并保护信用卡号码和其他进出网站的个人数据。
        /// SSL最多需要5分钟才能完全激活。需要在星盾激活你的根域或www域。
        /// Off，访客和星盾之间没有SSL，星盾和你的Web服务器之间也没有SSL（所有HTTP流量）。
        /// Flexible, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，但星盾和你的 Web 服务器之间没有 SSL。您不需要在您的 Web 服务器上安装 SSL 证书，但您的访客仍会看到启用 HTTPS 的网站。
        /// Full, 访客和星盾之间的 SSL -- 访客在你的网站上看到 HTTPS，以及星盾和你的 Web 服务器之间的 SSL。您至少需要有自己的 SSL 证书或自签名的证书。
        /// Full (Strict), 访客和星盾之间的 SSL -- 访客在您的网站上看到 HTTPS，以及星盾和您的 Web 服务器之间的 SSL。你需要在你的网络服务器上安装一个有效的SSL证书。
        /// 这个证书必须由一个证书机构签署，有一个在未来的到期日，并为请求的域名（主机名）作出回应。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeSSLSettingResponse> ChangeSSLSetting(ChangeSSLSettingRequest request) {
            return await new ChangeSSLSettingExecutor().Client(this).Execute<ChangeSSLSettingResponse, ChangeSSLSettingResult, ChangeSSLSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  列出、搜索、排序和筛选域的DNS记录。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListDNSRecordsResponse ListDNSRecords(ListDNSRecordsRequest request) {
            return  new ListDNSRecordsExecutor().Client(this).Execute<ListDNSRecordsResponse, ListDNSRecordsResult, ListDNSRecordsRequest>(request);
        }
#else
        /// <summary>
        ///  列出、搜索、排序和筛选域的DNS记录。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListDNSRecordsResponse> ListDNSRecords(ListDNSRecordsRequest request) {
            return await new ListDNSRecordsExecutor().Client(this).Execute<ListDNSRecordsResponse, ListDNSRecordsResult, ListDNSRecordsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  套餐实例列表信息查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeInstancesResponse DescribeInstances(DescribeInstancesRequest request) {
            return  new DescribeInstancesExecutor().Client(this).Execute<DescribeInstancesResponse, DescribeInstancesResult, DescribeInstancesRequest>(request);
        }
#else
        /// <summary>
        ///  套餐实例列表信息查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeInstancesResponse> DescribeInstances(DescribeInstancesRequest request) {
            return await new DescribeInstancesExecutor().Client(this).Execute<DescribeInstancesResponse, DescribeInstancesResult, DescribeInstancesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取HTTP2设置的状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetHTTP2SettingResponse GetHTTP2Setting(GetHTTP2SettingRequest request) {
            return  new GetHTTP2SettingExecutor().Client(this).Execute<GetHTTP2SettingResponse, GetHTTP2SettingResult, GetHTTP2SettingRequest>(request);
        }
#else
        /// <summary>
        ///  获取HTTP2设置的状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetHTTP2SettingResponse> GetHTTP2Setting(GetHTTP2SettingRequest request) {
            return await new GetHTTP2SettingExecutor().Client(this).Execute<GetHTTP2SettingResponse, GetHTTP2SettingResult, GetHTTP2SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  指定访问者在成功完成一项挑战（如验证码）后允许访问您的网站多长时间。在TTL过期后，访问者将不得不完成新的挑战。我们建议设置为15-45分钟，并将尝试遵守任何超过45分钟的设置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetChallengeTTLSettingResponse GetChallengeTTLSetting(GetChallengeTTLSettingRequest request) {
            return  new GetChallengeTTLSettingExecutor().Client(this).Execute<GetChallengeTTLSettingResponse, GetChallengeTTLSettingResult, GetChallengeTTLSettingRequest>(request);
        }
#else
        /// <summary>
        ///  指定访问者在成功完成一项挑战（如验证码）后允许访问您的网站多长时间。在TTL过期后，访问者将不得不完成新的挑战。我们建议设置为15-45分钟，并将尝试遵守任何超过45分钟的设置。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetChallengeTTLSettingResponse> GetChallengeTTLSetting(GetChallengeTTLSettingRequest request) {
            return await new GetChallengeTTLSettingExecutor().Client(this).Execute<GetChallengeTTLSettingResponse, GetChallengeTTLSettingResult, GetChallengeTTLSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开启BOT
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public OpenFirewallBotResponse OpenFirewallBot(OpenFirewallBotRequest request) {
            return  new OpenFirewallBotExecutor().Client(this).Execute<OpenFirewallBotResponse, OpenFirewallBotResult, OpenFirewallBotRequest>(request);
        }
#else
        /// <summary>
        ///  开启BOT
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<OpenFirewallBotResponse> OpenFirewallBot(OpenFirewallBotRequest request) {
            return await new OpenFirewallBotExecutor().Client(this).Execute<OpenFirewallBotResponse, OpenFirewallBotResult, OpenFirewallBotRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  启用IP地理定位，让星盾对您网站的访问者进行地理定位，并将国家代码传递给您。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetIPGeolocationSettingResponse GetIPGeolocationSetting(GetIPGeolocationSettingRequest request) {
            return  new GetIPGeolocationSettingExecutor().Client(this).Execute<GetIPGeolocationSettingResponse, GetIPGeolocationSettingResult, GetIPGeolocationSettingRequest>(request);
        }
#else
        /// <summary>
        ///  启用IP地理定位，让星盾对您网站的访问者进行地理定位，并将国家代码传递给您。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetIPGeolocationSettingResponse> GetIPGeolocationSetting(GetIPGeolocationSettingRequest request) {
            return await new GetIPGeolocationSettingExecutor().Client(this).Execute<GetIPGeolocationSettingResponse, GetIPGeolocationSettingResult, GetIPGeolocationSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateDNSRecordResponse UpdateDNSRecord(UpdateDNSRecordRequest request) {
            return  new UpdateDNSRecordExecutor().Client(this).Execute<UpdateDNSRecordResponse, UpdateDNSRecordResult, UpdateDNSRecordRequest>(request);
        }
#else
        /// <summary>
        ///  
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateDNSRecordResponse> UpdateDNSRecord(UpdateDNSRecordRequest request) {
            return await new UpdateDNSRecordExecutor().Client(this).Execute<UpdateDNSRecordResponse, UpdateDNSRecordResult, UpdateDNSRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  Value of the 0-RTT setting
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public Get0_RTTSessionResumptionSettingResponse Get0_RTTSessionResumptionSetting(Get0_RTTSessionResumptionSettingRequest request) {
            return  new Get0_RTTSessionResumptionSettingExecutor().Client(this).Execute<Get0_RTTSessionResumptionSettingResponse, Get0_RTTSessionResumptionSettingResult, Get0_RTTSessionResumptionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  Value of the 0-RTT setting
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<Get0_RTTSessionResumptionSettingResponse> Get0_RTTSessionResumptionSetting(Get0_RTTSessionResumptionSettingRequest request) {
            return await new Get0_RTTSessionResumptionSettingExecutor().Client(this).Execute<Get0_RTTSessionResumptionSettingResponse, Get0_RTTSessionResumptionSettingResult, Get0_RTTSessionResumptionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  如果你的网站上有敏感的内容，你想让真正的访问者看到，但你想对可疑的访问者进行隐藏，你所要做的就是用星盾SSE标签来包装这些内容。
        /// 用下面的SSE标签包住任何你想不让可疑访客看到的内容，&lt;!--sse--&gt;&lt;!--/sse--&gt;。
        /// 例如，&lt;!--sse--&gt;不好的访问者不会看到我的电话号码，555-555-5555&lt;!--/sse--&gt;。注意，SSE只对HTML起作用。
        /// 如果你启用了HTML最小化功能，当你的HTML源代码通过星盾提供服务时，你不会看到SSE标签。
        /// 在这种情况下，SSE 仍将发挥作用，因为星盾的 HTML 缩减和 SSE 功能是在资源通过我们的网络传输给我们时即时发生的。当资源通过我们的网络移动到访问者的计算机上时，SSE 仍会发挥作用。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeServerSideExcludeSettingResponse ChangeServerSideExcludeSetting(ChangeServerSideExcludeSettingRequest request) {
            return  new ChangeServerSideExcludeSettingExecutor().Client(this).Execute<ChangeServerSideExcludeSettingResponse, ChangeServerSideExcludeSettingResult, ChangeServerSideExcludeSettingRequest>(request);
        }
#else
        /// <summary>
        ///  如果你的网站上有敏感的内容，你想让真正的访问者看到，但你想对可疑的访问者进行隐藏，你所要做的就是用星盾SSE标签来包装这些内容。
        /// 用下面的SSE标签包住任何你想不让可疑访客看到的内容，&lt;!--sse--&gt;&lt;!--/sse--&gt;。
        /// 例如，&lt;!--sse--&gt;不好的访问者不会看到我的电话号码，555-555-5555&lt;!--/sse--&gt;。注意，SSE只对HTML起作用。
        /// 如果你启用了HTML最小化功能，当你的HTML源代码通过星盾提供服务时，你不会看到SSE标签。
        /// 在这种情况下，SSE 仍将发挥作用，因为星盾的 HTML 缩减和 SSE 功能是在资源通过我们的网络传输给我们时即时发生的。当资源通过我们的网络移动到访问者的计算机上时，SSE 仍会发挥作用。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeServerSideExcludeSettingResponse> ChangeServerSideExcludeSetting(ChangeServerSideExcludeSettingRequest request) {
            return await new ChangeServerSideExcludeSettingExecutor().Client(this).Execute<ChangeServerSideExcludeSettingResponse, ChangeServerSideExcludeSettingResult, ChangeServerSideExcludeSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更改异常检测类型WAF规则包的灵敏度和操作
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public EditFirewallPackageResponse EditFirewallPackage(EditFirewallPackageRequest request) {
            return  new EditFirewallPackageExecutor().Client(this).Execute<EditFirewallPackageResponse, EditFirewallPackageResult, EditFirewallPackageRequest>(request);
        }
#else
        /// <summary>
        ///  更改异常检测类型WAF规则包的灵敏度和操作
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<EditFirewallPackageResponse> EditFirewallPackage(EditFirewallPackageRequest request) {
            return await new EditFirewallPackageExecutor().Client(this).Execute<EditFirewallPackageResponse, EditFirewallPackageResult, EditFirewallPackageRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  通过指定主机、关联的缓存标记或前缀，从星盾的缓存中精确删除一个或多个文件。
        /// 注意，缓存标记、主机和前缀清除每24小时的速率限制为30000次清除API调用。一次API调用最多可以清除30个标记、主机或前缀。
        /// 对于需要以更大容量进行清除的客户，可以提高此速率限制。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public PurgeFilesByCache_TagsAndHostOrPrefixResponse PurgeFilesByCache_TagsAndHostOrPrefix(PurgeFilesByCache_TagsAndHostOrPrefixRequest request) {
            return  new PurgeFilesByCache_TagsAndHostOrPrefixExecutor().Client(this).Execute<PurgeFilesByCache_TagsAndHostOrPrefixResponse, PurgeFilesByCache_TagsAndHostOrPrefixResult, PurgeFilesByCache_TagsAndHostOrPrefixRequest>(request);
        }
#else
        /// <summary>
        ///  通过指定主机、关联的缓存标记或前缀，从星盾的缓存中精确删除一个或多个文件。
        /// 注意，缓存标记、主机和前缀清除每24小时的速率限制为30000次清除API调用。一次API调用最多可以清除30个标记、主机或前缀。
        /// 对于需要以更大容量进行清除的客户，可以提高此速率限制。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<PurgeFilesByCache_TagsAndHostOrPrefixResponse> PurgeFilesByCache_TagsAndHostOrPrefix(PurgeFilesByCache_TagsAndHostOrPrefixRequest request) {
            return await new PurgeFilesByCache_TagsAndHostOrPrefixExecutor().Client(this).Execute<PurgeFilesByCache_TagsAndHostOrPrefixResponse, PurgeFilesByCache_TagsAndHostOrPrefixResult, PurgeFilesByCache_TagsAndHostOrPrefixRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  套餐实例续费回调查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public SelectDetailListResponse SelectDetailList(SelectDetailListRequest request) {
            return  new SelectDetailListExecutor().Client(this).Execute<SelectDetailListResponse, SelectDetailListResult, SelectDetailListRequest>(request);
        }
#else
        /// <summary>
        ///  套餐实例续费回调查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<SelectDetailListResponse> SelectDetailList(SelectDetailListRequest request) {
            return await new SelectDetailListExecutor().Client(this).Execute<SelectDetailListResponse, SelectDetailListResult, SelectDetailListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  从星盾的缓存中删除所有文件
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public PurgeAllFilesResponse PurgeAllFiles(PurgeAllFilesRequest request) {
            return  new PurgeAllFilesExecutor().Client(this).Execute<PurgeAllFilesResponse, PurgeAllFilesResult, PurgeAllFilesRequest>(request);
        }
#else
        /// <summary>
        ///  从星盾的缓存中删除所有文件
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<PurgeAllFilesResponse> PurgeAllFiles(PurgeAllFilesRequest request) {
            return await new PurgeAllFilesExecutor().Client(this).Execute<PurgeAllFilesResponse, PurgeAllFilesResult, PurgeAllFilesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开启/关闭HTTP3
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeHTTP3SettingResponse ChangeHTTP3Setting(ChangeHTTP3SettingRequest request) {
            return  new ChangeHTTP3SettingExecutor().Client(this).Execute<ChangeHTTP3SettingResponse, ChangeHTTP3SettingResult, ChangeHTTP3SettingRequest>(request);
        }
#else
        /// <summary>
        ///  开启/关闭HTTP3
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeHTTP3SettingResponse> ChangeHTTP3Setting(ChangeHTTP3SettingRequest request) {
            return await new ChangeHTTP3SettingExecutor().Client(this).Execute<ChangeHTTP3SettingResponse, ChangeHTTP3SettingResult, ChangeHTTP3SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  浏览器完整性检查与不良行为检查类似，寻找最常被垃圾邮件发送者滥用的常见HTTP头，并拒绝他们访问您的页面。它还会对没有用户代理或非标准用户代理（也是滥用机器人、爬虫或访客常用的）的访客提出挑战质询。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeBrowserCheckSettingResponse ChangeBrowserCheckSetting(ChangeBrowserCheckSettingRequest request) {
            return  new ChangeBrowserCheckSettingExecutor().Client(this).Execute<ChangeBrowserCheckSettingResponse, ChangeBrowserCheckSettingResult, ChangeBrowserCheckSettingRequest>(request);
        }
#else
        /// <summary>
        ///  浏览器完整性检查与不良行为检查类似，寻找最常被垃圾邮件发送者滥用的常见HTTP头，并拒绝他们访问您的页面。它还会对没有用户代理或非标准用户代理（也是滥用机器人、爬虫或访客常用的）的访客提出挑战质询。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeBrowserCheckSettingResponse> ChangeBrowserCheckSetting(ChangeBrowserCheckSettingRequest request) {
            return await new ChangeBrowserCheckSettingExecutor().Client(this).Execute<ChangeBrowserCheckSettingResponse, ChangeBrowserCheckSettingResult, ChangeBrowserCheckSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteDNSRecordResponse DeleteDNSRecord(DeleteDNSRecordRequest request) {
            return  new DeleteDNSRecordExecutor().Client(this).Execute<DeleteDNSRecordResponse, DeleteDNSRecordResult, DeleteDNSRecordRequest>(request);
        }
#else
        /// <summary>
        ///  
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteDNSRecordResponse> DeleteDNSRecord(DeleteDNSRecordRequest request) {
            return await new DeleteDNSRecordExecutor().Client(this).Execute<DeleteDNSRecordResponse, DeleteDNSRecordResult, DeleteDNSRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  套餐包列表查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribePackagesResponse DescribePackages(DescribePackagesRequest request) {
            return  new DescribePackagesExecutor().Client(this).Execute<DescribePackagesResponse, DescribePackagesResult, DescribePackagesRequest>(request);
        }
#else
        /// <summary>
        ///  套餐包列表查询
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribePackagesResponse> DescribePackages(DescribePackagesRequest request) {
            return await new DescribePackagesExecutor().Client(this).Execute<DescribePackagesResponse, DescribePackagesResult, DescribePackagesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  设置Pseudo IPv4(IPv6到IPv4的转换服务)
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangePseudoIPv4SettingResponse ChangePseudoIPv4Setting(ChangePseudoIPv4SettingRequest request) {
            return  new ChangePseudoIPv4SettingExecutor().Client(this).Execute<ChangePseudoIPv4SettingResponse, ChangePseudoIPv4SettingResult, ChangePseudoIPv4SettingRequest>(request);
        }
#else
        /// <summary>
        ///  设置Pseudo IPv4(IPv6到IPv4的转换服务)
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangePseudoIPv4SettingResponse> ChangePseudoIPv4Setting(ChangePseudoIPv4SettingRequest request) {
            return await new ChangePseudoIPv4SettingExecutor().Client(this).Execute<ChangePseudoIPv4SettingResponse, ChangePseudoIPv4SettingResult, ChangePseudoIPv4SettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  允许客户继续在我们发送给源的头中使用真正的客户IP。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetTrueClientIPSettingResponse GetTrueClientIPSetting(GetTrueClientIPSettingRequest request) {
            return  new GetTrueClientIPSettingExecutor().Client(this).Execute<GetTrueClientIPSettingResponse, GetTrueClientIPSettingResult, GetTrueClientIPSettingRequest>(request);
        }
#else
        /// <summary>
        ///  允许客户继续在我们发送给源的头中使用真正的客户IP。这只限于企业级域。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetTrueClientIPSettingResponse> GetTrueClientIPSetting(GetTrueClientIPSettingRequest request) {
            return await new GetTrueClientIPSettingExecutor().Client(this).Execute<GetTrueClientIPSettingResponse, GetTrueClientIPSettingResult, GetTrueClientIPSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  自动将移动设备上的访问者重定向到一个移动优化的子域上
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetMobileRedirectSettingResponse GetMobileRedirectSetting(GetMobileRedirectSettingRequest request) {
            return  new GetMobileRedirectSettingExecutor().Client(this).Execute<GetMobileRedirectSettingResponse, GetMobileRedirectSettingResult, GetMobileRedirectSettingRequest>(request);
        }
#else
        /// <summary>
        ///  自动将移动设备上的访问者重定向到一个移动优化的子域上
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetMobileRedirectSettingResponse> GetMobileRedirectSetting(GetMobileRedirectSettingRequest request) {
            return await new GetMobileRedirectSettingExecutor().Client(this).Execute<GetMobileRedirectSettingResponse, GetMobileRedirectSettingResult, GetMobileRedirectSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  剥离元数据并压缩你的图像，以加快页面加载时间。
        /// Basic（无损），减少PNG、JPEG和GIF文件的大小 - 对视觉质量没有影响。
        /// Basic+JPEG（有损），进一步减少JPEG文件的大小，以加快图像加载。
        /// 较大的JPEG文件被转换为渐进式图像，首先加载较低分辨率的图像，最后是较高的分辨率版本。
        /// 不建议用于高像素的摄影网站。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangePolishSettingResponse ChangePolishSetting(ChangePolishSettingRequest request) {
            return  new ChangePolishSettingExecutor().Client(this).Execute<ChangePolishSettingResponse, ChangePolishSettingResult, ChangePolishSettingRequest>(request);
        }
#else
        /// <summary>
        ///  剥离元数据并压缩你的图像，以加快页面加载时间。
        /// Basic（无损），减少PNG、JPEG和GIF文件的大小 - 对视觉质量没有影响。
        /// Basic+JPEG（有损），进一步减少JPEG文件的大小，以加快图像加载。
        /// 较大的JPEG文件被转换为渐进式图像，首先加载较低分辨率的图像，最后是较高的分辨率版本。
        /// 不建议用于高像素的摄影网站。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangePolishSettingResponse> ChangePolishSetting(ChangePolishSettingRequest request) {
            return await new ChangePolishSettingExecutor().Client(this).Execute<ChangePolishSettingResponse, ChangePolishSettingResult, ChangePolishSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  在你的网页上对电子邮件地址进行加密，以防止机器人入侵，同时保持它们对人类可见。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeEmailObfuscationSettingResponse ChangeEmailObfuscationSetting(ChangeEmailObfuscationSettingRequest request) {
            return  new ChangeEmailObfuscationSettingExecutor().Client(this).Execute<ChangeEmailObfuscationSettingResponse, ChangeEmailObfuscationSettingResult, ChangeEmailObfuscationSettingRequest>(request);
        }
#else
        /// <summary>
        ///  在你的网页上对电子邮件地址进行加密，以防止机器人入侵，同时保持它们对人类可见。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeEmailObfuscationSettingResponse> ChangeEmailObfuscationSetting(ChangeEmailObfuscationSettingRequest request) {
            return await new ChangeEmailObfuscationSettingExecutor().Client(this).Execute<ChangeEmailObfuscationSettingResponse, ChangeEmailObfuscationSettingResult, ChangeEmailObfuscationSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新一个单独的现有防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateIndividualFirewallRuleResponse UpdateIndividualFirewallRule(UpdateIndividualFirewallRuleRequest request) {
            return  new UpdateIndividualFirewallRuleExecutor().Client(this).Execute<UpdateIndividualFirewallRuleResponse, UpdateIndividualFirewallRuleResult, UpdateIndividualFirewallRuleRequest>(request);
        }
#else
        /// <summary>
        ///  更新一个单独的现有防火墙规则。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateIndividualFirewallRuleResponse> UpdateIndividualFirewallRule(UpdateIndividualFirewallRuleRequest request) {
            return await new UpdateIndividualFirewallRuleExecutor().Client(this).Execute<UpdateIndividualFirewallRuleResponse, UpdateIndividualFirewallRuleResult, UpdateIndividualFirewallRuleRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取有关单个防火墙包的信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public FirewallPackageDetailsResponse FirewallPackageDetails(FirewallPackageDetailsRequest request) {
            return  new FirewallPackageDetailsExecutor().Client(this).Execute<FirewallPackageDetailsResponse, FirewallPackageDetailsResult, FirewallPackageDetailsRequest>(request);
        }
#else
        /// <summary>
        ///  获取有关单个防火墙包的信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<FirewallPackageDetailsResponse> FirewallPackageDetails(FirewallPackageDetailsRequest request) {
            return await new FirewallPackageDetailsExecutor().Client(this).Execute<FirewallPackageDetailsResponse, FirewallPackageDetailsResult, FirewallPackageDetailsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  自动优化移动设备上网站访问者的图像加载
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetMirageSettingResponse GetMirageSetting(GetMirageSettingRequest request) {
            return  new GetMirageSettingExecutor().Client(this).Execute<GetMirageSettingResponse, GetMirageSettingResult, GetMirageSettingRequest>(request);
        }
#else
        /// <summary>
        ///  自动优化移动设备上网站访问者的图像加载
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetMirageSettingResponse> GetMirageSetting(GetMirageSettingRequest request) {
            return await new GetMirageSettingExecutor().Client(this).Execute<GetMirageSettingResponse, GetMirageSettingResult, GetMirageSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  替换页面规则。最终规则将与此请求传递的数据完全匹配。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdatePageRuleResponse UpdatePageRule(UpdatePageRuleRequest request) {
            return  new UpdatePageRuleExecutor().Client(this).Execute<UpdatePageRuleResponse, UpdatePageRuleResult, UpdatePageRuleRequest>(request);
        }
#else
        /// <summary>
        ///  替换页面规则。最终规则将与此请求传递的数据完全匹配。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdatePageRuleResponse> UpdatePageRule(UpdatePageRuleRequest request) {
            return await new UpdatePageRuleExecutor().Client(this).Execute<UpdatePageRuleResponse, UpdatePageRuleResult, UpdatePageRuleRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新规则组的状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public EditRuleGroupResponse EditRuleGroup(EditRuleGroupRequest request) {
            return  new EditRuleGroupExecutor().Client(this).Execute<EditRuleGroupResponse, EditRuleGroupResult, EditRuleGroupRequest>(request);
        }
#else
        /// <summary>
        ///  更新规则组的状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<EditRuleGroupResponse> EditRuleGroup(EditRuleGroupRequest request) {
            return await new EditRuleGroupExecutor().Client(this).Execute<EditRuleGroupResponse, EditRuleGroupResult, EditRuleGroupRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  一个用于TLS终端的密码允许列表。这些密码必须是BoringSSL的格式。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetCiphersSettingResponse GetCiphersSetting(GetCiphersSettingRequest request) {
            return  new GetCiphersSettingExecutor().Client(this).Execute<GetCiphersSettingResponse, GetCiphersSettingResult, GetCiphersSettingRequest>(request);
        }
#else
        /// <summary>
        ///  一个用于TLS终端的密码允许列表。这些密码必须是BoringSSL的格式。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetCiphersSettingResponse> GetCiphersSetting(GetCiphersSettingRequest request) {
            return await new GetCiphersSettingExecutor().Client(this).Execute<GetCiphersSettingResponse, GetCiphersSettingResult, GetCiphersSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  一个用于TLS终端的密码允许列表。这些密码必须是BoringSSL的格式。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeCiphersSettingResponse ChangeCiphersSetting(ChangeCiphersSettingRequest request) {
            return  new ChangeCiphersSettingExecutor().Client(this).Execute<ChangeCiphersSettingResponse, ChangeCiphersSettingResult, ChangeCiphersSettingRequest>(request);
        }
#else
        /// <summary>
        ///  一个用于TLS终端的密码允许列表。这些密码必须是BoringSSL的格式。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeCiphersSettingResponse> ChangeCiphersSetting(ChangeCiphersSettingRequest request) {
            return await new ChangeCiphersSettingExecutor().Client(this).Execute<ChangeCiphersSettingResponse, ChangeCiphersSettingResult, ChangeCiphersSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  当请求图像的客户端支持WebP图像编解码器时。当WebP比原始图像格式具有性能优势时，星盾将提供WebP版本的图像。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetWebPSettingResponse GetWebPSetting(GetWebPSettingRequest request) {
            return  new GetWebPSettingExecutor().Client(this).Execute<GetWebPSettingResponse, GetWebPSettingResult, GetWebPSettingRequest>(request);
        }
#else
        /// <summary>
        ///  当请求图像的客户端支持WebP图像编解码器时。当WebP比原始图像格式具有性能优势时，星盾将提供WebP版本的图像。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetWebPSettingResponse> GetWebPSetting(GetWebPSettingRequest request) {
            return await new GetWebPSettingExecutor().Client(this).Execute<GetWebPSettingResponse, GetWebPSettingResult, GetWebPSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  当请求图像的客户端支持WebP图像编解码器时。当WebP比原始图像格式具有性能优势时，星盾将提供WebP版本的图像。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeWebPSettingResponse ChangeWebPSetting(ChangeWebPSettingRequest request) {
            return  new ChangeWebPSettingExecutor().Client(this).Execute<ChangeWebPSettingResponse, ChangeWebPSettingResult, ChangeWebPSettingRequest>(request);
        }
#else
        /// <summary>
        ///  当请求图像的客户端支持WebP图像编解码器时。当WebP比原始图像格式具有性能优势时，星盾将提供WebP版本的图像。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeWebPSettingResponse> ChangeWebPSetting(ChangeWebPSettingRequest request) {
            return await new ChangeWebPSettingExecutor().Client(this).Execute<ChangeWebPSettingResponse, ChangeWebPSettingResult, ChangeWebPSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  启用后，热链路保护选项可确保其他网站无法通过建立使用您网站上托管的图像的页面来占用您的带宽。只要您的网站上的图像请求被星盾选中，我们就会检查以确保这不是其他网站在请求它们。
        /// 人们仍然能够从你的网页上下载和查看图像，但其他网站将无法窃取它们用于自己的网页。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetHotlinkProtectionSettingResponse GetHotlinkProtectionSetting(GetHotlinkProtectionSettingRequest request) {
            return  new GetHotlinkProtectionSettingExecutor().Client(this).Execute<GetHotlinkProtectionSettingResponse, GetHotlinkProtectionSettingResult, GetHotlinkProtectionSettingRequest>(request);
        }
#else
        /// <summary>
        ///  启用后，热链路保护选项可确保其他网站无法通过建立使用您网站上托管的图像的页面来占用您的带宽。只要您的网站上的图像请求被星盾选中，我们就会检查以确保这不是其他网站在请求它们。
        /// 人们仍然能够从你的网页上下载和查看图像，但其他网站将无法窃取它们用于自己的网页。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetHotlinkProtectionSettingResponse> GetHotlinkProtectionSetting(GetHotlinkProtectionSettingRequest request) {
            return await new GetHotlinkProtectionSettingExecutor().Client(this).Execute<GetHotlinkProtectionSettingResponse, GetHotlinkProtectionSettingResult, GetHotlinkProtectionSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  WAF检查对您网站的HTTP请求。它检查GET和POST请求，并应用规则来帮助从合法的网站访问者中过滤出非法流量。星盾 WAF 检查网站地址或 URL 以检测任何不正常的东西。
        /// 如果星盾 WAF确定了可疑的用户行为。那么 WAF 将用一个页面 &quot;挑战 &quot;网络访客，要求他们成功提交验证码以继续其行动。
        /// 如果挑战失败，行动将被停止。这意味着 星盾 的 WAF 将在任何被识别为非法的流量到达您的源网络服务器之前将其阻止。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ChangeWebApplicationFirewallWAFSettingResponse ChangeWebApplicationFirewallWAFSetting(ChangeWebApplicationFirewallWAFSettingRequest request) {
            return  new ChangeWebApplicationFirewallWAFSettingExecutor().Client(this).Execute<ChangeWebApplicationFirewallWAFSettingResponse, ChangeWebApplicationFirewallWAFSettingResult, ChangeWebApplicationFirewallWAFSettingRequest>(request);
        }
#else
        /// <summary>
        ///  WAF检查对您网站的HTTP请求。它检查GET和POST请求，并应用规则来帮助从合法的网站访问者中过滤出非法流量。星盾 WAF 检查网站地址或 URL 以检测任何不正常的东西。
        /// 如果星盾 WAF确定了可疑的用户行为。那么 WAF 将用一个页面 &quot;挑战 &quot;网络访客，要求他们成功提交验证码以继续其行动。
        /// 如果挑战失败，行动将被停止。这意味着 星盾 的 WAF 将在任何被识别为非法的流量到达您的源网络服务器之前将其阻止。
        /// 
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ChangeWebApplicationFirewallWAFSettingResponse> ChangeWebApplicationFirewallWAFSetting(ChangeWebApplicationFirewallWAFSettingRequest request) {
            return await new ChangeWebApplicationFirewallWAFSettingExecutor().Client(this).Execute<ChangeWebApplicationFirewallWAFSettingResponse, ChangeWebApplicationFirewallWAFSettingResult, ChangeWebApplicationFirewallWAFSettingRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  从域中删除SSL证书。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteSSLConfigurationResponse DeleteSSLConfiguration(DeleteSSLConfigurationRequest request) {
            return  new DeleteSSLConfigurationExecutor().Client(this).Execute<DeleteSSLConfigurationResponse, DeleteSSLConfigurationResult, DeleteSSLConfigurationRequest>(request);
        }
#else
        /// <summary>
        ///  从域中删除SSL证书。
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteSSLConfigurationResponse> DeleteSSLConfiguration(DeleteSSLConfigurationRequest request) {
            return await new DeleteSSLConfigurationExecutor().Client(this).Execute<DeleteSSLConfigurationResponse, DeleteSSLConfigurationResult, DeleteSSLConfigurationRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取单个规则组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public RuleGroupDetailsResponse RuleGroupDetails(RuleGroupDetailsRequest request) {
            return  new RuleGroupDetailsExecutor().Client(this).Execute<RuleGroupDetailsResponse, RuleGroupDetailsResult, RuleGroupDetailsRequest>(request);
        }
#else
        /// <summary>
        ///  获取单个规则组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<RuleGroupDetailsResponse> RuleGroupDetails(RuleGroupDetailsRequest request) {
            return await new RuleGroupDetailsExecutor().Client(this).Execute<RuleGroupDetailsResponse, RuleGroupDetailsResult, RuleGroupDetailsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  包内的搜索、排序和筛选规则
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListRulesResponse ListRules(ListRulesRequest request) {
            return  new ListRulesExecutor().Client(this).Execute<ListRulesResponse, ListRulesResult, ListRulesRequest>(request);
        }
#else
        /// <summary>
        ///  包内的搜索、排序和筛选规则
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListRulesResponse> ListRules(ListRulesRequest request) {
            return await new ListRulesExecutor().Client(this).Execute<ListRulesResponse, ListRulesResult, ListRulesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  搜索、列出和排序包中包含的规则组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ListRuleGroupsResponse ListRuleGroups(ListRuleGroupsRequest request) {
            return  new ListRuleGroupsExecutor().Client(this).Execute<ListRuleGroupsResponse, ListRuleGroupsResult, ListRuleGroupsRequest>(request);
        }
#else
        /// <summary>
        ///  搜索、列出和排序包中包含的规则组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ListRuleGroupsResponse> ListRuleGroups(ListRuleGroupsRequest request) {
            return await new ListRuleGroupsExecutor().Client(this).Execute<ListRuleGroupsResponse, ListRuleGroupsResult, ListRuleGroupsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建DNS记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateDNSRecordResponse CreateDNSRecord(CreateDNSRecordRequest request) {
            return  new CreateDNSRecordExecutor().Client(this).Execute<CreateDNSRecordResponse, CreateDNSRecordResult, CreateDNSRecordRequest>(request);
        }
#else
        /// <summary>
        ///  创建DNS记录
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateDNSRecordResponse> CreateDNSRecord(CreateDNSRecordRequest request) {
            return await new CreateDNSRecordExecutor().Client(this).Execute<CreateDNSRecordResponse, CreateDNSRecordResult, CreateDNSRecordRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  获取HTTP3设置的状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetHTTP3SettingResponse GetHTTP3Setting(GetHTTP3SettingRequest request) {
            return  new GetHTTP3SettingExecutor().Client(this).Execute<GetHTTP3SettingResponse, GetHTTP3SettingResult, GetHTTP3SettingRequest>(request);
        }
#else
        /// <summary>
        ///  获取HTTP3设置的状态
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetHTTP3SettingResponse> GetHTTP3Setting(GetHTTP3SettingRequest request) {
            return await new GetHTTP3SettingExecutor().Client(this).Execute<GetHTTP3SettingResponse, GetHTTP3SettingResult, GetHTTP3SettingRequest>(request).ConfigureAwait(false);
        }
#endif

            /// <summary>
            ///  默认StarshieldClient 构造器 接口
            ///</summary>
            public interface Builder
            {

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>starshieldClient 构造器</returns>
                Builder CredentialsProvider(CredentialsProvider provider);

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>starshieldClient 构造器</returns>
                Builder Environment(Core.Client.SDKEnvironment environment);

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>starshieldClient 构造器</returns>
                Builder HttpRequestConfig(HttpRequestConfig config);

                /// <summary>
                ///  构造StarshieldClient 对象
                ///</summary>
                StarshieldClient Build();
            }

            /// <summary>
            ///  默认StarshieldClient 构造器
            ///</summary>
            public class DefaultBuilder : Builder
            {
                /// <summary>
                ///  StarshieldClient service client
                /// </summary>
                private  StarshieldClient starshieldClient;

                /// <summary>
                ///  默认StarshieldClient 构造器构造对象
                ///</summary>
                public DefaultBuilder()
                {
                    starshieldClient = new StarshieldClient();
                }

                /// <summary>
                ///  构造StarshieldClient 对象
                ///</summary>
                public StarshieldClient Build()
                {
                    if (starshieldClient.CredentialsProvider == null)
                    {
                        //if credentialsProvider not set, try load jdcloud global default  credentials provider
                        starshieldClient.credentialsProvider = JdCloud.DefaultInstance.GetCredentialsProvider();
                        if (starshieldClient.credentialsProvider == null)
                        {
                            throw new ArgumentNullException("StarshieldClient build error: jdcloud credentials provider not set");
                        }
                    }
                    if (starshieldClient.HttpRequestConfig == null)
                    {
                        starshieldClient.httpRequestConfig = JdCloud.DefaultInstance.GetHttpRequestConfig();
                        if (starshieldClient.httpRequestConfig == null)
                        {
                        throw new ArgumentNullException("StarshieldClient build error: http request config not set");
                        }
                    }
                    return starshieldClient;
                }

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>starshieldClient 构造器</returns>
                public Builder CredentialsProvider(CredentialsProvider provider)
                {
                    starshieldClient.credentialsProvider = provider;
                    return this;
                }

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>starshieldClient 构造器</returns>
                public Builder Environment(SDKEnvironment environment)
                {
                    starshieldClient.environment = environment;
                    return this;
                }

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>starshieldClient 构造器</returns>
                public Builder HttpRequestConfig(HttpRequestConfig config)
                {
                    starshieldClient.httpRequestConfig = config;
                    return this;
                }
            }
    }
}
